![]() |
Datei öffnen
Bekomme immer I/O Error 6. Hier der Code:
Delphi-Quellcode:
Wahrscheinlich liegt es daran das ich die Datei nicht geöffnet habe. Nur weiß ich nicht wie ich das mache. Muss aber dazu sagen das die Datei nicht über ein OpenDialog geöffnet wird, sondern ich mir den Dateinamen zusammenbaue, vorher schaue ob diese Datei existiert und wenn sie existiert dann möchte ich diese öffnen. Habe auch schon denn Befehl FileOpen gefunden. Doch dann gibt es noch OpenFile. Welchen Befehl soll man nun nehmen? Irgendwie unterscheiden sich auch die ganzen Befehlen bei den jeweiligen Beispielen der Datei Öffnen Befehle. Jetzt blick ich irgendwie nicht mehr durch ...
FileMode := fmOpenRead;
try strFileName := GetReportPath + GetFileName; AssignFile(hFile, strFileName); //Datei zuweisen Reset(hFile); //Datei öffnen Readln(s); //Zeile lesen showmessage(s); except // on EInOutError do raise; end; {EDIT} Ich möchte eine Textdatei einlesen. Diese möchte ich zeilenweise auslesen. Jede eingelesene Zeile möchte ich dann auswerten und nach der Auswertung die Werte in einen StringGrid darstellen. Aber erst einmal möchte ich die Datei lesen können. {/EDIT} |
Hallo,
Du machst zwar die Datei auf, aber nicht wieder zu. Das machst Du ja mit: AssignFile(hFile, strFileName); //Datei zuweisen Reset(hFile); //Datei öffnen Ausserdem kannst Du die Datei einlesen und in eine Stringlist laden, so lässt es sich viel besser verarbeiten und die Datei muss nicht ständig offen sein während der ganzen Arbeit! Grüsse, Daniel :hi: |
Nimm eine TStringlist und fülle diese per loadfromfile.
|
Hi,
ein Formular und ein Button wird benötigt:
Code:
Alternativ, wie schon von den Vorrednern erwähnt, kann man das ganze noch in eine TStringList speichern. Gerade bei Parsern muß so nicht jedesmal die Textdatei geöffnet werden...
function GetSlash(Dir: string): string;
begin if Copy(Dir, Length(Dir), 1) <> '\' then Dir := Dir + '\'; Result := Dir; end; procedure TForm1.Button1Click(Sender: TObject); var OldFileMode: Byte; strFileName: string; hFile: TextFile; hFile_str: string; GetReportPath: string; GetFileName: string; begin OldFileMode := FileMode; FileMode := fmOpenRead; strFileName := GetSlash(GetReportPath) + GetFileName; try AssignFile(hFile, strFileName); Reset(hFile); while not EOF(hFile) do begin ReadLn(hFile, hFile_str); if AnsiUpperCase(hFile_str) = 'EIN TOKEN' then begin // Hier geschieht was mit dem Token... end; end; CloseFile(hFile); except raise; end; FileMode := OldFileMode; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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