Hallo zusammen,
von einem über
COM angeschlossenes Gerät werden Daten ausgelesen und in eine (Text-) Datei geschrieben. Ist dieser Vorgang abgeschlossen, wird die Datei zuerst natürlich geschlossen, um sie dann im nächsten Schritt lesen zu öffnen. Dabei tritt allerdings sporadisch ein E/A-Fehler 6 auf, den ich mir nicht erklären kann.
Der Code:
Delphi-Quellcode:
var EventFile: System.Text;
Zeile : string;
(...)
begin
{$I-}
System.AssignFile(EventFile, 'test.tmp');
System.Rewrite(EventFile);
{$I+}
if (System.IOResult = 0) then
begin
repeat
{Zeichen vom Gerät auslesen}
System.Write(EventFile, {EinZeichen});
until {Abbruchbedingungen}
System.CloseFile(EventFile);
end;
{$I-}
System.AssignFile(EventFile, 'test.tmp');
System.Reset(EventFile);
{$I+}
if (System.IOResult = 0) then
begin
while not (EoF(EventFile)) do
begin
System.Readln(EventFile, Zeile);
end;
System.CloseFile(EventFile);
end;
Es knallt an der Stelle "while not (EoF(EventFile)) do", was ich erst recht merkwürdig finde, da ich zuvor auf IOResult=0 geprüft hatte.
Hat jemand eine Erklärung dafür?
E/A-Fehler 6 ist lt.
Hersteller ein INVALID_FILE_HANDLE...
Dank vorab und Gruß, Carsten