Autor Beitrag
Hochhaus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: So 10.06.12 12:07 
Hallo allerseits !

der folgende Code hat unter Delphi 6 problemlos funktioniert - unter XE2 aber nicht mehr ...! Das Debuggen hat ergeben, dass die Zeile mit der Dateiumbenennung nicht funktioniert.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
Procedure Rueck;
Var G   : TextFile;
    H   : TextFile;
    I   : Word;
    P   : Word;
    SR  : TSearchRec;
    S   : String[255];
    T   : String[255];

Begin
  SetCursor(LoadCursor(0, PChar(idc_Wait)));
  S := ParamStr(0);
  For I := 1 to Length(S) Do
   S[I] := UpCase(S[I]);
  P:= Pos('.EXE', S);
  S := Copy(S, 1, P - 1) + '.DOC';
  T := Copy(S, 1, P - 1) + '.OLD';

  If (FindFirst(T, faAnyFile, SR) = 0Then Begin
   AssignFile(G, S);
   AssignFile(H, T);
   Erase(G);
   Rename(H, S);
   MessageDlg('  Funktion "Rückgängig" ausgeführt !  ',
                 mtInformation, [mbOk], 0);
  End {* If *}
  Else Begin
   MessageDlg('  Funktion "Rückgängig" nicht möglich,  '^M +
              '          da Backup dazu fehlt !        ',
                 mtInformation, [mbOk], 0);
  End{* Else *}
  SetCursor(LoadCursor(0, PChar(idc_Arrow)));
End{* Procedure *}


Die umbenannte Datei heisst dann "????????"

Woran liegt das wohl ?


Gruss,


Hochhaus
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.06.12 12:15 
Nimm mal einen normalen String statt dem komischen ShortString für S und T. ;-)
Eigentlich kann nur das das Problem sein.

Wie wäre es eigentlich schlicht mit DeleteFile und RenameFile statt dem ganzen AssignFile usw.? ;-)

Für diesen Beitrag haben gedankt: Hochhaus
Hochhaus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: So 10.06.12 12:32 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Nimm mal einen normalen String statt dem komischen ShortString für S und T. ;-)
Eigentlich kann nur das das Problem sein.


Super ! Genau das war falsch.

Moderiert von user profile iconNarses: Beiträge zusammengefasst

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

Wie wäre es eigentlich schlicht mit DeleteFile und RenameFile statt dem ganzen AssignFile usw.? ;-)


Zum Zeitpunkt der Programmierung obigen Codes war dies noch nicht möglich. Es war die Zeit von Turbopascal 4.0 für DOS - so viel ich weiss, gab es diese Funktionen (DeleteFile/RenameFile) noch nicht. Aber es ist sicher jetzt eine gute Gelegenheit, den Code anzupassen ...