Und in IOResult steht der letzte Fehler drin?
Ja.
Sobald ein Fehler auftrat, werden alle nachfolgenden Pascal-Datei-Routinen übergangen und nicht mehr ausgeführt.
Und ist {$i} aktiviert (+), dann lößt der erste Fehler eine
Exception aus und die Codebearbeitung wird unterbrochen.
Achtung: Das Auslesen von IOResult setzt den internen Fehlercode wieder auf 0. (danach werden also die Dateiroutinen wieder ausgeführt)
[add]
Jetzt weiß ich auch endlich wieder, wieso ich mal auf die saublöde Idee kam, GetLastError würde seinen Fehlercode zurücksetzen.