Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: {$i-} - {$iochecks off}

  Alt 31. Mär 2025, 10:17
{$IOChecks} schaltet optionalen Prüfcode für die uralten Pascal-Dateifunktionen aus, also jene um AssignFile.

AssignFile/Append/Reset/Rewrite/Read/ReadLn/Write/WriteLn/Close/...


Delphi-Quellcode:
{$I+}
...
Write('blubb');
wird quasi zu
Delphi-Quellcode:
Write0UString(Output, 'blubb');
{$IFOPT I+}
if not IOTest then
  Error;
{$ENDIF}
Ich wäre fast 100% der Mienung, dass IOResult in diesem Fall nicht das Ergebnis des intern verwendeten Delphi-Referenz durchsuchenCreateDir und vor allem nicht vom MSDN-Library durchsuchenCreateDirectory wiederspiegelt.


Wer sich den Quellcode von ForceDirectories ansieht, wird feststellen, dass dort keine dieser alten API verwendet wird,
bei Eingabe-Fehlern explizit eine Exception ausgelößt wird (ja, genau dieses '' )
und sonst jemand dringend den Rückgabewert dieser Funktion prüfen sollte.

Delphi-Quellcode:
if not SysUtils.ForceDirectories( MeinString) then
  RaiseLastOSError;
Delphi-Quellcode:
if not SysUtils.ForceDirectories( MeinString) then begin
  TheError := GetLastError;
  ...
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat