Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 29. Sep 2011, 08:58
Um mal die Anmerkungen meiner Vorredner zu wiederholen: Lass dir mal bitte den Dateinamen ausgeben.

Ich habe deine SchluesselA -Funktion mal bei mir getestet und es hat funktioniert. Ich verwende auch Windows 7 und habe die Datei einmal als c:\test.txt und als c:\test\test.txt getestet. Das einzig interessante war, dass ich das erste Mal die Datei, welche ich per Notepad++ auf c:\ angelegt hatte, nicht öffnen konnte; die Datei war auch im Explorer nicht sichtbar, aber im Öffnen-Dialog von Notepad++. Als ich dann die Datei im Unterverzeichnis angelegt und rüberkopiert habe, hat's dann aber funktioniert. Ich vermute mal schwer, dass mir hier der Virtual File Store zugeschlagen hat

Weitere mögliche Ursache: Dein Dateiname enthält Umlaute. Die LCL-Komponenten, zu denen auch TOpenDialog gehört, geben nun jedoch UTF-8 kodierte Strings zurück, während die RTL Funktionen von Free Pascal mit der Kodierung des Systems (in Deutschland normalerweise CP-1252) arbeiten. Du solltest also einen Aufruf von UTF8ToSys oder UTF8ToAnsi vor den Aufruf von SchluesselA davorschalten. Dazu kannst du zum Beispiel deine Textpfad -Variable verwenden, welche du nicht mehr weiter zu verwenden scheinst.

Den ganzen letzten Absatz lege ich dir übrigens unabhängig vom eigentlichen Problem ans Herz, denn spätestens dann, wenn du eine Datei mit Umlauten oder ähnlichem auswählst wirds krachen.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat