untyped files/de

From Lazarus wiki

Deutsch (de) English (en)

Zurück zu den Dateitypen.

untypisierte Textdatei

Eine untypisierte Textdatei eignet sich für die Verarbeitung von Dateien jeder Grösse.
Bei untypisierten Dateien, wird der Inhalt einer Datei Zeile für Zeile eingelesen. Umgekehrt wird die Datei Zeile für Zeile geschrieben. Die Datensätze einer untypisierten Datei können von unterschiedlicher Länge sein.

Datei erstellen

var
  datDatei: TextFile;   // oder: datDatei: Text
  strName: String;
  sinGehalt: Single;
begin
  Assign(datDatei,'d:\beispiel.txt'); // Weist der Variablen txtDatei den Namen der Datei zu und öffnet die Datei
  ReWrite(datDatei); // Die alte Datei wird überschrieben
  strName := 'qwert';
  sinGehalt := 1800.23;
  WriteLn(datDatei, strName, sinGehalt); // Schreibt den ersten Datensatz in die neue Datei
  ...
end;

Im Compiler-Modus OBJPFC oder DELPHI steht zusätzlich zu Assign auch die Prozedur AssignFile zur Verfügung, um eine Verwechslung mit TPersistent.Assign auszuschließen.

Datei öffnen

var
  datDatei: TextFile;
  strName: String;
  sinGehalt: Single;
begin
  Assign(datDatei,'d:\beispiel.txt'); // Weist der Variablen txtDatei den Namen der Datei zu
  Reset(datDatei); // Setzt den Dateizeiger auf den Anfang der Datei
  ReadLn(datDatei, strName, sinGehalt); // Liest die erste Zeile aus der Datei ein
  ReadLn(datDatei, strName, sinGehalt); // Liest die zweite Zeile aus der Datei ein
  ...
end;

Datei schliessen

var
  datDatei: TextFile;
  strName: String;
  sinGehalt: Single;
begin
  ...
  Close(datDatei); //Schliesst die Datei
end;

Analog zu AssignFile/Assign steht im Compiler-Modus OBJPFC oder DELPHI steht auch die Prozedur CloseFile zur Verfügung.

Datensatz an eine vorhandenen Datei anfügen

Bei Textdateien (untypisierten Dateien) kann mit Hilfe des Befehls Append am Ende der Datei ein Datensatz angefügt werden.

var
  datDatei: TextFile;
  strName: String;
  sinGehalt: Single;
begin
  Assign(datDatei,'d:\beispiel.txt'); // Weist der Variablen txtDatei den Namen der Datei zu
  Append(datDatei); // Öffnet die Datei für den Schreibzugriff und erlaubt das Anfügen von Datensätzen an das Ende der Datei
  strName := 'sdf';
  sinGehalt := 2001.21;
  WriteLn(datDatei, strName,sinGehalt); // Schreibt einen weiteren Datensatz in die neue Datei
  Close(datDatei); //Schliesst die Datei

Datei komplett lesen

var
  datDatei: TextFile;
  strName: String;
  sinGehalt: Single;
begin
  Assign(datDatei, 'D:\beispiel.txt');
  Reset(datDatei);
  while not eof(datDatei)   //solange noch Daten zu lesen sind
    do begin
      read(datDatei, strName, sinGehalt);
    end;
  Close(datDatei);
end;