Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 02:19
Dieses Snippet ist so nicht sicher...
Was ist, wenn aus welchen Gründen auch immer in der Schleife ein Fehler auftritt? In diesem Fall wird das Filehandle nicht geschlossen, dh. CloseFile(f); wird nicht unbedingt aufgerufen. Im weiteren Programmfluss könnte das zu Bugs führen!
Daher packe das bitte in ein Try-Finally Konstrukt!
Also für den Fall der Fälle

Meinst so?

Delphi-Quellcode:
procedure FBuffin(FileName: string);
var
  sBuffer: string;
  f : TextFile;
begin

  if not FExist(FileName) then
    Exit;
  try
    Assignfile(f, FileName);
    reset(f);

    while not eof(f) do
    begin
      ReadLN(f, sBuffer);
      FSeekTo(nReading, sBuffer);
      inc(nReading);
    end;
  finally
    CloseFile(f);
  end;

end;
Ähm ich würd Assignfile vorziehen, denn, was ist, wenn z.B. genau dieser Befehl zu Fehler führt? Dann wird CloseFile aufjedenfall noch ausgeführt und das wiederum dürfte zu Fehlern führen, weil es nicht AssignFile nicht richtig ausgeführt werden konnte!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat