Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.671 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: E/A-Fehler in Wrapperklasse

  Alt 22. Feb 2012, 08:59
Bei dem <>fmClose muß nur uf jeden Fall die File-Variable initialisiert sein, bevor das FileClose auch nur daran denken könnte man dranzukommen.

Es ist oftmals zwar eher unwahrscheinlich, daß ein "billiges" Create (inherited) fehlschlagen kann, aber dennoch würde AssignFile(f, AFileName); noch davor hingehören.
AssignFile selber macht noch keine Dateizugriffe, es initialisiert nur die Variable und legt den Dateinamen (als ShortString) darin ab.
Ohne sichere Initialisierung wäre die Prüfung auf fmInput, fmOutput und fmInOut noch am Sichersten.
Im Falle des Objektes und da dessen Speicher automatisch mit 0/nil initialisiert wird, könnte man auch auf if (TFileRec(f).Mode <> 0) or (TFileRec(f).Mode <> fmClosed) then prüfen und das AssignFile so belassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat