Einzelnen Beitrag anzeigen

blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#2

AW: File löschen und umbenennen geht nicht

  Alt 12. Aug 2010, 03:23
Hallo Störtebeker,

warum öffnest Du die Ini-Datei ohne etwas damit zu machen, und führst dann die Delete/Rename Aktionen auf dieser geöffneten Ini-Datei durch ?
Außerdem fehlt bei Dir irgendwie in beiden Codeschnipseln ein "end"......?!
Kein Fehler, aber warum verwendest Du mal Application.ExeName und dann wieder ParamStr(0) ?
Noch ein Tip zur Lesbarkeit: wenn Du z.B. "ExtractFilePath(Application.ExeName)+'vers_patch. ini'" mehrfach brauchst, dann belege 1 mal ein stringvariable damit.
Last but not least würde ich eine Extra-Methode zum umbenennen der Datei machen, und diese Methode im FormShow aufrufen (also nicht Code direkt im FormShow).

Versuche mal statt
Delphi-Quellcode:
procedure TForm7.FormShow(Sender: TObject);
 var Ini : TIniFile;
 begin
  if FileExists(ExtractFilePath(Application.ExeName)+'vers_patch.ini') then begin
   Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'vers__patch.ini');
  try
     deletefile(ExtractFilePath(Application.ExeName)+'vers_aktuell.ini');
     renamefile(ExtractFilePath(Application.ExeName)+'vers_patch.ini',(ExtractFilePath(Application.ExeName)+'vers_aktuell.ini'));
  finally
     FreeAndNil(Ini);
  end;
 end;
einfach nur dieses:
Delphi-Quellcode:
procedure TForm7.CheckForPatchFile;
var
  patchfilename,
  currentfilename: string;
begin
  patchfilename := ExtractFilePath(Application.ExeName)+'vers_patch.ini';
  if not FileExists(patchfilename) then
    exit;
  currentfilename := ExtractFilePath(Application.ExeName)+'vers_aktuell.ini';
  deletefile(currentfilename);
  renamefile(patchfilename, currentfilename);
end;

procedure TForm7.FormShow(Sender: TObject);
begin
  CheckForPatchFile;
end;
Grüsse,
blauweiss
  Mit Zitat antworten Zitat