Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei öffnen (https://www.delphipraxis.net/4089-datei-oeffnen.html)

[TP]Hawk274 14. Apr 2003 19:27


Datei öffnen
 
Bekomme immer I/O Error 6. Hier der Code:
Delphi-Quellcode:
    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;
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 ...
{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}

Daniel B 14. Apr 2003 19:50

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:

Touchdown 14. Apr 2003 19:53

Nimm eine TStringlist und fülle diese per loadfromfile.

Catbytes 14. Apr 2003 20:56

Hi,

ein Formular und ein Button wird benötigt:

Code:
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;
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...


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