Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#2

AW: E/A Fehler 103 beim Assignfile

  Alt 11. Jul 2023, 14:42
Ich habe hier ein Problem, welches ich nicht verstehe.
Ich versuche zu testen, ob ich eine Datei schreiben kann.

Code:
var
  lFile            : file     ;
begin
  if not FileExists( pDateiName ) then
    exit;

  FileMode := fmOpenReadWrite;

  assignfile( lFile , pDateiName );

...
end;
Dabei erhalte ich schon beim AssignFile den I/O Error 103.

Wenn ich das per try ... except abfange und assignfile noch einmal aufrufe, dann funktioniert es.

Das Problem taucht nur auf, wenn ich vorher in einer anderen unit (vollkommen andere Datei) einen nicht erfolgreichen Aufruf (Res <> 0 ) in der folgenden Art hatte (Datei pPath war schreibgeschützt)

Code:
  AssignFile(  lTestFile , pPath );
  if IOResult = 0 then begin
    rewrite( lTestFile , 1 );
    Res := IOResult;
    CloseFile( lTestFile );
  end;
Wo ist hier der Fehler?
Setz IOResult auf 0 bevor Du irgendwelche Dateioperationen machst, das ist sicherer. Noch besser: vergiss diese uralten Dateifunktionen und verwende TFilestream et al., da ist die Fehlerbehandlung wesentlich konsistenter.
Peter Below
  Mit Zitat antworten Zitat