Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wohin mit DeleteFile() ? (https://www.delphipraxis.net/24943-wohin-mit-deletefile.html)

Pseudemys Nelsoni 28. Jun 2004 23:49


Wohin mit DeleteFile() ?
 
moin,

habe folgende funktion:

Delphi-Quellcode:
procedure loeschen;
var
  tf, temp : TextFile;
  s       : string;
begin
  AssignFile(tf, pfad);
  AssignFile(temp, pfad + 'exe');
  try
    ReSet(tf);
    ReWrite(temp);
    while not EOF(tf) do
    begin
      ReadLn(tf, s);
      if (s <> C_SERV_XWIX) and (s <> C_SERV_XWIX_2) then
        WriteLn(temp, s);
    end;
  finally
    CloseFile(fTmp);
    CloseFile(tf);
  end;
end;
Wo kann ich da "DeleteFile()" einbringen ? vor dem finally geht es ja garnicht weil da die datei "benutzt" wird, also kann ich sie nicht löschen, aber IM finally teil ist es doch auch falsch oder?


Also die Temp datei will ich löschen auf der festplatte.

Sharky 28. Jun 2004 23:53

Re: Wohin mit DeleteFile() ?
 
Hai Preudonyms,

wann "weisst" Du denn das die Datei gelöscht werden muss?
Wenn es immer sein muss kannst Du ja noch eine Try-Finally Block um deine gesate Funktion bauen.

Pseudemys Nelsoni 28. Jun 2004 23:57

Re: Wohin mit DeleteFile() ?
 
hallo sharky,

die funktion funktioniert so:

Es wird aus datei 1 jede zeile gelesen, wenn diese zeile zwei bestimmte werte nicht enthält, soll sie in datei 2 geschrieben werden, so geht das zeile für zeile. Am ende soll die originaldatei gelöscht werden (tf) und die temporäre (temp) umbenannt werden in den namen den die originale hatte.
Aber wie mach ich das das die datei NUR gelöscht wird wenn die Zugriffe (readln, writeln usw) auch geklappt haben?

alcaeus 29. Jun 2004 04:49

Re: Wohin mit DeleteFile() ?
 
Wie wärs denn hiermit?
Delphi-Quellcode:
procedure loeschen;
var
  Delete  : Boolean;
  tf, temp : TextFile;
  s       : string;
begin
  Delete := False;
  AssignFile(tf, pfad);
  AssignFile(temp, pfad + 'exe');
  try
    ReSet(tf);
    ReWrite(temp);
    while not EOF(tf) do
    begin
      ReadLn(tf, s);
      if (s <> C_SERV_XWIX) and (s <> C_SERV_XWIX_2) then
        WriteLn(temp, s);
    end;
  finally
    if FileSize(fTmp) = FileSize(tf) then //Hiermit stellen wir fest, ob das Kopieren erfolgreich war
      Delete := True;
    CloseFile(fTmp);
    CloseFile(tf);
  end;
  if Delete then  //Hier wird gelöscht
    DeleteFile
end;
Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz