AGB  ·  Datenschutz  ·  Impressum  







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

Datei öffnen

Ein Thema von [TP]Hawk274 · begonnen am 14. Apr 2003 · letzter Beitrag vom 14. Apr 2003
Antwort Antwort
[TP]Hawk274
(Gast)

n/a Beiträge
 
#1

Datei öffnen

  Alt 14. Apr 2003, 20:27
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}
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 14. Apr 2003, 20: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
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#3
  Alt 14. Apr 2003, 20:53
Nimm eine TStringlist und fülle diese per loadfromfile.
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#4
  Alt 14. Apr 2003, 21: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...
Catbytes
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:25 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