AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sporadischer E/A 6 Fehler

Ein Thema von Carsten1234 · begonnen am 26. Feb 2009 · letzter Beitrag vom 26. Feb 2009
Antwort Antwort
Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#1

Sporadischer E/A 6 Fehler

  Alt 26. Feb 2009, 06:32
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Sporadischer E/A 6 Fehler

  Alt 26. Feb 2009, 07:19
Nimm mal komplette Pfadangaben (z.B. mit ExtractFilePath(Application.ExeName) + '\test.tmp'). Ansonsten kann es dir passieren das die Datei entsprechend gerade dem zufälligen aktuellen Pfad der Anwendung erstellt wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#3

Re: Sporadischer E/A 6 Fehler

  Alt 26. Feb 2009, 07:41
Zitat von Bernhard Geyer:
Nimm mal komplette Pfadangaben (z.B. mit ExtractFilePath(Application.ExeName) + '\test.tmp'). Ansonsten kann es dir passieren das die Datei entsprechend gerade dem zufälligen aktuellen Pfad der Anwendung erstellt wird.
Danke für den Tipp, hat sich inzwischen aber erledigt. Der Dateiname selbst wurde erst dann festgelegt, wenn Daten vom Gerät kamen. Kamen keine und es wurde versucht, anschliessend die Datei lesend zu öffnen, gab es natürlich keinen Dateinamen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz