![]() |
FindFirst und Inhalt von txt Datei in Stringlist laden
Hi,
ich habe hier zwei Programme die für sich alleine funktionieren. Jetzt sollen die verheiratet werden und die die vertragen sich nicht. Hiermit suche ich nacheinander alle txt Dateinen, schreibe den Namen ins Memo und lösche danach.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var rec : tsearchrec; Datum : String; begin if FindFirst('f:\*.txt', faAnyFile, rec) = 0 then try repeat Datum := FormatDateTime('yyyy_mm_dd__hh_mm_ss', Now); Anzahl := Anzahl+1; Label2.Caption := IntToStr(Anzahl); Memo1.Lines.add(Datum+ ' '+ rec.Name); deletefile('f:\'+rec.Name); until FindNext(rec) <> 0; finally FindClose(rec); end; end; Das ist Ziel den Inhalt der gefundenen txt Datei in eine Stingliste zu laden, was die Fehlermeldung Unable to open file"xxxx.txt" verursacht. Hat jemand eine Idee was sich beißt?
Delphi-Quellcode:
begin
sl := TStringList.Create; if (FindFirst('f:\*.txt', faAnyFile, rec) = 0) then try sl.LoadFromFile(rec.Name); |
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Las dir mal rec.Name ausgeben. Wenn ich mich nicht irre müsstest du dann sehen was das Problem ist.
|
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
[QUOTE=zaphood;1456113]
Das ist Ziel den Inhalt der gefundenen txt Datei in eine Stingliste zu laden, was die Fehlermeldung Unable to open file"xxxx.txt" verursacht. Hat jemand eine Idee was sich beißt? Hast Du die notwendigen Rechte? kann es sein das die Datei exklusiv geöffnet wurde? Gruß K-H |
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Mit
Delphi-Quellcode:
sollt es klappen. Es fehlt der Pfad :!:
sl.LoadFromFile('f:/' + rec.Name);
|
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Guten Morgen und danke für die Tipps.:thumb:
@Bernd: es klappt mit der Pfadangabe:-D @DieDolly: Mit
Delphi-Quellcode:
bekomme ich die Textdatei angezeit.
ShowMessage(rec.Name);
Mit
Delphi-Quellcode:
in einem anderen Programm lade ich eine txt Datei aus dem Programmverzeichnis. Wusste nicht das die Syntax für die Übergabe von
sl.LoadFromFile('SPC.txt');
Delphi-Quellcode:
an die
FindFirst/tsearchrec
Delphi-Quellcode:
anders lauten muss.
Stringlist
|
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Weil das Arbeitsverzeichnis bei dem anderen Programm zufällig stimmt. Benutze mal einen Öffnen-Dialog und öffne mal eine Datei aus einem anderen Ordner. Da wird dir das gleiche passieren.
|
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Zitat:
Wenn SPC.txt im selben Verzeichnis liegt wie deine Exe-Datei, dann funktioniert das. Logischerweise, Windows kann ja nicht wissen wo die Datei ist (es könnte sie hunderte male geben mit demselben Namen), funktioniert das nicht mehr, wenn SPC.txt woanders liegt. |
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Hallo,
Zitat:
|
AW: FindFirst und Inhalt von txt Datei in Stringlist laden
Zitat:
SearchReg.Name liefert immer nur den Dateinamen/Verzeichnissnamen ohne Pfad und an das LoadFromFile übergibst DU es dann ohne Pfad. PS: Beim DeleteFile hattest du es doch auch richtig gemacht. :zwinker: Um Daniel und die anderen nochmal zusammenzufassen. Ohne Pfad, bzw. mit relativem Pfad geht es immer vom aktuellen Arbeitsverzeichnis aus und das muß nicht dem Programmverzeichnis entsprechen. In der CMD tut es das oft, weil dort ja öfters die Programme im auch im aktuellen Verzeichnis gestartet werden. Programm mit absolutem/relativem Pfad oder aus Suchpfaden starten und schon stimmt das auch doch nicht mehr. Ebenso bei Links. Die bekommen beim erstellen oft standardmäßig den Pfad der gestarteten Datei (wenn man das Feld leer lässt), aber das muß nicht so sein. Und als Tipp: Wenn man einen Öffnen-Dialog verwendet, dann stellt der gern das Arbeitsverzeichnis auf das ausgewählte Verzeichnis um. Fazit, was auch überall immer wieder geprädigt wird: Man soll keine relativen Pfade verwenden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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