Difference between revisions of "typed files/de"

From Free Pascal wiki
m (Schliesssen der Datei)
Line 40: Line 40:
 
   ...
 
   ...
 
end;
 
end;
 +
</syntaxhighlight>
 
<br>
 
<br>
 
=Datensatz schreiben=
 
=Datensatz schreiben=
Line 56: Line 57:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 +
 
=Datensatz lesen=
 
=Datensatz lesen=
 
<syntaxhighlight>
 
<syntaxhighlight>

Revision as of 18:09, 24 October 2012

Deutsch (de) English (en)

Zurück zu den Dateitypen.


typisierte Datei

Die typisierte Textdatei eignet für die Verarbeitung von Dateien jeder Grösse.
Eine typisierte Textdatei Datei besteht aus einzelnen Datensätzen. Alle Datensätze in der Datei haben die gleiche Struktur das heisst, dass jeder Datensatz gleich lang ist.

Festlegen der Struktur für Datei und Datensatz

Die Struktur gilt für den Dateityp und den Datensatztyp. Datei und Datensatz müssen die gleiche Struktur haben.

type
  TMitarbeiter = record
  strName : string[20];
  sinGehalt : single;
end;


Ersellen der Datei

var
  datDatei: File of TMitarbeiter;
  recDatensatz: TMitarbeiter;
begin
  AssignFile(datDatei, 'D:\beispiel.txt');
  ReWrite(datDatei);  // Erstellt die neue Datei
  // Eine bereits vorhandene Datei wird dabei gelöscht und neu erstellt
  ...
end;


Schliesssen der Datei

begin
  ...
  Close(datDatei);  // Schliesst die Datei
  ...
end;


Datensatz schreiben

var
  datDatei: File of TMitarbeiter;
  recDatensatz: TMitarbeiter;
begin
  ...
  // Datensatz füllen
  recDatensatz.strName := 'abcdefghij';
  recDatensatz.sinGehalt := 1700.21;
  Write(datDatei, recDatensatz); // Schreibt den Datensatz in die Datei
  ...
end;


Datensatz lesen

var
  datDatei: File of TMitarbeiter;
  recDatensatz: TMitarbeiter;
begin
  AssignFile(datDatei, 'D:\beispiel.txt');
  Reset(datDatei);  // Setzt den Dateizeiger auf den Anfang der Datei
  Read(datDatei, recDatensatz); // Liest den Datensatz aus der Datei
  ...
end;


Datei komplett lesen

var
  datDatei: File of TMitarbeiter;
  recDatensatz: TMitarbeiter;
begin
  AssignFile(datDatei, 'D:\beispiel.txt');
  Reset(datDatei);
  while not eof(datDatei)   //solange noch Daten zu lesen sind
    do begin
      read(datDatei,recDatensatz);
    end;
  CloseFile(datDatei);
end;


Zeiger auf Datensatz positionieren

begin
  AssignFile(datDatei, 'D:\beispiel.txt');
  Reset(datDatei);
  ...
  Seek(datDatei,0);
  Read(datDatei, recDatensatz);
  recDatensatz.sinGehalt :=1602.22;
  Write(datDatei, recDatensatz);
  ...
end;



--Olaf 16:42, 23 October 2012 (UTC)