![]() |
EReadError bei Reader.ReadListBegin
Hallo habe mal wieder ein Problem.
Habe bestimmt 1000x diese Sequenz programmiert und vorher nie Schwierigkeiten damit gehabt, Ich will beim Starten einer Anwendung ein Konfigurationsfile laden und er macht dabei einen Laufzeitfehler :
Delphi-Quellcode:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure TForm1.FormCreate(Sender: TObject); var Stream : TStream; Reader : TReader; i,j : integer; Setup : array[1..150] of string; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ begin Stream:=TFileStream.Create(SetupVerzeichnis+SetupDatei,fmOpenRead); Reader:=TReader.Create(Stream,2048); Reader.ReadListBegin; // ** und hier macht er einen ExceptionFehler for i := 1 to 150 do begin Setup[i]:=Reader.ReadStr; end; Reader.ReadListEnd; Reader.Free; Stream.Free; pGrad:= StrToInt(Setup[3]); for i := 0 to 9 do begin pKoef[i]:= StrToFloat(Setup[4+i]); end; for i := 1 to 26 do begin EFilm.Werte[1,i]:= StrToFloat(Setup[20+i]); EPlan.Werte[1,i]:= STrToFloat(Setup[70+i]); Werte[i]:= StrToFloat(Setup[120+i]); end; end; Die Fehlermeldung lautet: "Im Projekt EB_Project.exe ist eine Exception de Klasse EReadError aufgetreten. Meldung: 'Ungültiger Eigenschaftswert'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen." Kennt jemand soetwas und/oder hat jemand eine Idee? Danke E. B. |
Re: EReadError bei Reader.ReadListBegin - anders gefragt..
Hallo hier bin ich nochmal und möchte die Frage anders stellen:
Wie muß die mit TWriter.WriteString abgelegte String-Variable sein, daß TReader.ReadString diese als vaString / vaLString erkennt, und nicht EReadError auslöst? Habe die Schreib - und Lese -Routinen auch mit Integer und Single versucht, hier auch EReadError bekommen - irgend was ist faul! Ich habe sonst meinen Datenkram über Streams gemacht und nie Probleme gehabt!! Bin verärgert, da bleibt man bei soch banalem Zeug hängen. Ich will schon meinen weiteren Dateikram schon über Streams machen, weil das auch mein bisheriger Standard war - "Streams of StringArray's". Danke für Hilfe E. B. |
Re: EReadError bei Reader.ReadListBegin
Hallo E.
der von dir beschriebene Fehler wird wohl von dir beim Erstellen der Datei verursacht. Vermutlich wird die Methode WriteListBegin nicht korrekt ausgeführt. Ansonsten schlage ich noch folgende Änderung vor:
Delphi-Quellcode:
Grüße vom marabu
// ...
// ich gehe bei Setup von einer TStringList aus Setup.Clear; Reader := TReader.Create(Stream,2048); with Reader do begin ReadListBegin; while not EndOfList do Setup.Add(ReadString); // nicht ReadStr() benutzen, siehe OH ReadListEnd; Free; end; // ... |
Re: EReadError bei Reader.ReadListBegin
Danke,
was kann ich denn zum richtigen funktionieren von WriteListBegin tun? E. B. |
Re: EReadError bei Reader.ReadListBegin
Keine Ahnung was du beim Schreiben eventuell falsch machst - ich kenne deinen Code ja nicht.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz