Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   noch einmal E/A Fehler 6 (https://www.delphipraxis.net/208769-noch-einmal-e-fehler-6-a.html)

Gerkey 13. Sep 2021 11:35

noch einmal E/A Fehler 6
 
Seit einem Stromausfall wird beim Lesen einer Textdatei der Fehler "E/A Fehler 6" ausgegeben.
Habe sowohl Outbyte Repair laufen lassen als auch PC Repair. Fehler bleibt.
In einem anderen Programm, dass auch ausseiner Textdatei liest, tritt der Fehler nicht auf.
Code nachstehend.
Kann mir jemand helfen ?

Procedure DATEN_LESEN;
var f : TextFile; s : String;
begin
AssignFile(f,'C:\Team\TDaten.txt');
reset(f);
try
while not eof(f) do
begin
readln (s); { hier Fehlermeldung "E/A Fehler 6" }
ShowMessage('s = ' + s)
end;
finally
CloseFile(f);
end;

{ Übernehme ich naachstehenden von Moderator Luckie in Delphi-Praxis empfohlenen
Code, wird in Zeile "Reset(F,1]" gemeckeret : "E2034 zu viele Parameter !"
AssignFile(F, 'C:\Team\TDaten.txt');
{$I-} // interne fehlerbehandlung ausschalten, machen wir selber
{ Reset(F,1);
{$I+}
{ if IOResult = 0 then // unsere Fehlerbehandlung
begin
Seek(F,FileSize(F)-128);
BlockRead(F, Buffer, SizeOf(Buffer));
CloseFile(F);
end
else
ShowMessage(SysErrorMessage(getLastError)); }
end;

TiGü 13. Sep 2021 12:18

AW: noch einmal E/A Fehler 6
 
Kannst du die Txt-Datei denn in einen Editor wie Notepad++ öffnen?
https://notepad-plus-plus.org/downloads/

himitsu 13. Sep 2021 19:40

AW: noch einmal E/A Fehler 6
 
Delphi-Quellcode:
resourcestring SInOutError = 'E/A-Fehler %d';

und am Ende landet man bei ERROR_INVALID_HANDLE.

Da ist wohl irgendwas kaputt.


Ja, erstmal mit einem anderen Programm versuchen.

Oder im Delphi die DebugDCUs aktivieren und schauen wo genau es knallt.


Und neuere FileAPIs haben hier vielleicht auch eine bessere Fehlerbehandlung, mit verständlicherer Fehlermeldung.

Delphi.Narium 13. Sep 2021 20:03

AW: noch einmal E/A Fehler 6
 
Versuch es mal (hilfsweise) so:
Delphi-Quellcode:
Procedure DATEN_LESEN;
var
  f : TextFile;
  s : String;
  i : Integer;
begin
  i := 0;
  AssignFile(f,'C:\Team\TDaten.txt');
  reset(f);
  try
    try
      while not eof(f) do
      begin
        i := i + 1;
        readln (s); { hier Fehlermeldung "E/A Fehler 6" }
      end;
    except
      on e : Exception do begin
        ShowMessage(Format('Fehler bei Zeile %d der Textdatei: %s',[i,e.Message]));
      end;
    end;
  finally
    CloseFile(f);
  end;
end;
Damit könntest Du (mit etwas Glück) erfahren, in welcher Zeile der Fehler auftritt.

jaenicke 13. Sep 2021 22:25

AW: noch einmal E/A Fehler 6
 
Zitat:

Zitat von Gerkey (Beitrag 1494675)
Seit einem Stromausfall wird beim Lesen einer Textdatei der Fehler "E/A Fehler 6" ausgegeben.

Dann würde ich als erstes eine vollständige Überprüfung der Festplatte laufen lassen. Dabei können durchaus logische Fehler passieren.

Gerkey 15. Sep 2021 11:58

AW: noch einmal E/A Fehler 6
 
Zunächst Dank an alle für die Ratschläge !

An TiGü; ja, ich kann die Textdatei öffnen und lesen
an Jaenicke: Festplatte geprüft (ca. 2 Std., gefundene Fehler behoben)
an Delphi-Narium: Code-Vorschlag übernommen, Ergebnis: Satz 1 der Datei
an himitsu: bin (vielleicht forgeschrittener) Anfänger, aber Autodidakt, d.h. ohne richtige Ausbildung; die Begriffe "DebugCPUs" und "FileAPIs" sagen mir nichts. Gibt es dazu Quellenhinweise ?

Programm bringt nach wie vor E/A Fehler 6

Habe das Programm auf Laptop mit Windows 10 kopiert und dort laufen lassen mit dem selben Ergebnis.

Sollte ich vielleicht Delphi Seattle neu installieren ?

himitsu 15. Sep 2021 12:06

AW: noch einmal E/A Fehler 6
 
Zitat:

gefundene Fehler behoben
Kommt drauf an, was man darunter versteht.
Defekte Dateien gelöscht, ist nicht immer die Lösung.

Delphi neu installieren.


Bei einem Kollegen war der PC öfters abgestürtzt, wenn er mit Delphi arbeitete.
Die SSD hatte defekte Sektoren selbstständig repariert, aber einige Dateien waren halt futsch.

Delphi deinstallieren und neu installieren könnte vielleicht helfen ... falls die defekten Dateien welche von Delphi sind und nicht irdendwo vom Windows.
* oder Alles neu installieren
* oder ein Backup zurückspielen, von bevor der Defekt auftrat


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf