![]() |
Delphi-Version: 5
Lazarus Fehler beim lesen einer Textdatei
Ja hi wie im Titel beschrieben:
Delphi-Quellcode:
Wäre dankbar wenn mir einer den Fehler erklären könnte ich versteh ihn nicht!
function SchluesselA(x:string):TISArray;
var TxtDatei:Textfile; Ss,ZS :String; i, Zaehl:Integer; begin AssignFile(TxtDatei, x); reset(TxtDatei); readln(TxtDatei, Ss); //Run-Error(3) zaehl := 1; for i := 1 to length(Ss) do if Ss[i] = ' ' then inc(zaehl); setlength(SchluesselA, zaehl); ZS := ''; Zaehl:=0; for i := 1 to length(Ss)do begin if Ss[i] = ' ' then begin SchluesselA[Zaehl] := StrToInt(ZS); inc(Zaehl); ZS := ''; end else ZS := ZS + Ss[i]; end; CloseFile(TxtDatei); end; procedure TForm1.Button1Click(Sender: TObject); var Textpfad :string; i :integer; Schluessel :TISArray; begin Form1.OpenDialog1.Execute; Textpfad:=OpenDialog1.Filename; Form1.OpenDialog1.Execute; Schluessel:=SchluesselA(OpenDialog1.Filename); for i := 1 to length(Schluessel) do Form1.Memo1.Lines.add(IntToStr(Schluessel[i])); end; Das Verzeichnis existiert und es ist auch nicht im Zugriff eingeschränkt. |
AW: Lazarus Fehler beim lesen einer Textdatei
Gerade in einem anderen Forum gefunden:
Zitat:
|
AW: Lazarus Fehler beim lesen einer Textdatei
Ich wollte schon fragen, ob du mit der Zeile sicher bist
und es nicht doch an Reset liegt. ![]() PS: Für das Funktionsergebnis würde ich dir als Tipp nahelegen, daß du statt SchluesselA lieber Result verwendest, innerhalb dieser Funktion. |
AW: Lazarus Fehler beim lesen einer Textdatei
lol
wenn ich die textdateien auf d:\ lege geht es aber wenn sie auf c:\ sind egal wo dann geht es generell nicht. Warum ist das so? ich nutze Windows 7 |
AW: Lazarus Fehler beim lesen einer Textdatei
Run time error
3 Path not found Reported by the directory handling routines when a path does not exist or is invalid. Also reported when trying to access a non-existent file. ![]() lass dir mal mit showmessage anzeigen welchen Pfad du da übergibst und schau ob du da überhaupt Zugriff hast. |
AW: Lazarus Fehler beim lesen einer Textdatei
Und kapsele das mal in einem try-except-Block, dann bekommst du auch eine entsprechende Fehlermeldung.
|
AW: Lazarus Fehler beim lesen einer Textdatei
Um mal die Anmerkungen meiner Vorredner zu wiederholen: Lass dir mal bitte den Dateinamen ausgeben.
Ich habe deine
Delphi-Quellcode:
-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 :roll:
SchluesselA
Weitere mögliche Ursache: Dein Dateiname enthält Umlaute. Die LCL-Komponenten, zu denen auch
Delphi-Quellcode:
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
TOpenDialog
Delphi-Quellcode:
oder
UTF8ToSys
Delphi-Quellcode:
vor den Aufruf von
UTF8ToAnsi
Delphi-Quellcode:
davorschalten. Dazu kannst du zum Beispiel deine
SchluesselA
Delphi-Quellcode:
-Variable verwenden, welche du nicht mehr weiter zu verwenden scheinst.
Textpfad
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 |
AW: Lazarus Fehler beim lesen einer Textdatei
so danke für die tips werde sie bald/gleich ausprobieren
so zu diversen Fehlern, ja ich weiß dass es nicht richtig funktionierte also das richtige einlesen etc. dass hab ich schon gefixt das Problem mit dem öffnen besteht aber immer noch und nein ich hab die datei bei mir auf der Festplatte da bin ich mir sicher! Und Probleme mit dem Namen gibt es bei mir auch nicht, also zumindest sind weder Sonderzeichen noch Umlaute drin. Die heißen nämlich zahlenfolge0, zahlenfolge1 ... |
AW: Lazarus Fehler beim lesen einer Textdatei
Zitat:
Stichwort: VirtualStore Da dein/dieses Programm scheinbar "schrottig" programmiert wurde, weil es versucht in Verzeichnisse zu schreiben, wo es nicht reinschreiben darf und da es nicht als Vista/Win7-Kompatibel deklariert ist, versucht Windows dennoch diese Schreibzugriffe virtuell (nur für dieses) zu erlauben, damit es nicht verreckt, wie z.B. viele andere Programme, welche dämlicher Weise immernoch versuchen in C:\Programme reinzuschreiben und damit eigentlich nicht mehr funktionieren würden, obwohl man ja eigentlich schon seit WinNT/2000 dort nicht reinschreiben sollte. :angle2: (Ob du absichtlich oder das Programm "ausversehn" diesen Speicherplatz ausgesucht hat, ist für Windows ja nicht erkennbar) Zitat:
Zitat:
|
AW: Lazarus Fehler beim lesen einer Textdatei
C:\Users\MeinName\Desktop\Buchentschlüsslung\Zahle nfolgen\zahlenfolge3.txt
da liegen die Textdateien,//also der Pfad wird mir auch vom Programm ausgegeben diese wurden auf einem anderen Computer erstellt ich hab sie nur irgendwann mal hier rübergezogen zum testen, also die sind hier gespeichert und wurden nicht weiter bearbeitet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 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 by Thomas Breitkreuz