AGB  ·  Datenschutz  ·  Impressum  







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

Lazarus Fehler beim lesen einer Textdatei

Ein Thema von foerster7892 · begonnen am 28. Sep 2011 · letzter Beitrag vom 5. Okt 2011
Antwort Antwort
Seite 1 von 2  1 2      
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#1

Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 20:02
Delphi-Version: 5
Ja hi wie im Titel beschrieben:

Delphi-Quellcode:
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;
Wäre dankbar wenn mir einer den Fehler erklären könnte ich versteh ihn nicht!
Das Verzeichnis existiert und es ist auch nicht im Zugriff eingeschränkt.
mfg
foerster7892
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 20:12
Gerade in einem anderen Forum gefunden:

Zitat:
Runtime error 3 would mean that the path is invalid. Make sure it really exists
Vielleicht hilft es Dir ja
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#3

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 20:47
Ich wollte schon fragen, ob du mit der Zeile sicher bist
und es nicht doch an Reset liegt.


http://msdn.microsoft.com/en-us/libr.../ms681382.aspx



PS: Für das Funktionsergebnis würde ich dir als Tipp nahelegen, daß du statt SchluesselA lieber Result verwendest, innerhalb dieser Funktion.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Sep 2011 um 20:54 Uhr)
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#4

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 20:56
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
mfg
foerster7892
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#5

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 21:30
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.

http://www.freepascal.org/docs-html/user/userap4.html

lass dir mal mit showmessage anzeigen welchen Pfad du da übergibst und schau ob du da überhaupt Zugriff hast.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 28. Sep 2011, 21:47
Und kapsele das mal in einem try-except-Block, dann bekommst du auch eine entsprechende Fehlermeldung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
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
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#8

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 1. Okt 2011, 09:07
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 ...
mfg
foerster7892
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#9

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 1. Okt 2011, 09:27
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++.
Ein normales Programm hat in C:\ und C:\Programme, C:\Windows, ... usw. eigentlich keine Schreibrechte, darum hat Windows diesen Schreibzugriff des Notepad++ virtuell umgeleitet.
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.
(Ob du absichtlich oder das Programm "ausversehn" diesen Speicherplatz ausgesucht hat, ist für Windows ja nicht erkennbar)

Zitat:
Lass dir mal bitte den Dateinamen ausgeben.
Und verrate diese uns endlich mal.

Zitat:
UTF8ToSys oder UTF8ToAnsi
Hast du das auch mal ausprobiert?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Okt 2011 um 09:32 Uhr)
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#10

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 1. Okt 2011, 14:11
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.
mfg
foerster7892
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:11 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