Programmiersprache Pascal

Typisierte Binärdateien

Typisierte Binärdateien bestehen aus Datensätzen mit einer festen Struktur und einer festen Länge.
Sie sind damit für Direktzugriffe geeignet, vorausgesetzt, das Speichermedium, auf dem sie sich befinden, gestattet die dazu erforderlichen Positionierungen.
Binärdateien sind auch sequentiell lesbar.

Turbo Pascal

Deklaration einer Dateivariablen

  VAR f : FILE OF typ;
f steht hier als Bezeichner für eine Dateivariable.
typ bezeichnet einen Datentyp. Hinsichtlich des angebbaren Datentyps bestehen Einschränkungen, nicht möglich sind zum FILE ...

Bindung der Dateivariablen an einen Dateinamen

  Assign(f, dateiname);
  AssignFile(f, dateiname);            { zusätzlich in Delphi }
f ist eine Dateivariable, dateiname eine Zeichenkette, die den Namen einer Datei benennt.
dateiname muß den Konventionen des Betriebssystems entsprechen.
Der Aufruf von Assign löst keinen Zugriff auf das Dateisystem aus.
Assign ist eine vordefinierte Prozedur.

Nach der Bindung von f an den Dateinamen richten sich alle weiteren Operationen, die auf f Bezug nehmen, solange an die benannte Datei, bis f durch einen weiteren Aufruf von Assign eine andere externe Datei zugeordnet wird.

Eine Datei darf zur gleichen Zeit nicht mehrfach geöffnet sein.

Eröffnen einer exitierenden Datei zum Lesen und/oder Modifizieren

  Reset(f);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß.
Die bezeichnete Datei muß existieren. Dies wird durch Zugriff auf das Dateisystem geprüft.
Der Positionszeiger zeigt auf den Dateianfang.
Die Datensatzlänge ist durch typ bestimmt.
Es sind sowohl Lese- als auch Schreibzugriffe auf die Datei zulässig.
Reset ist eine vordefinierte Prozedur.

Eröffnen einer Datei, die neu erstellt wird

  Rewrite(f);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß.
Die Datei wird neu angelegt. Dies gilt auch dann, wenn zuvor bereits eine Datei mit dem angegebenen Namen existiert, d.h. diese Datei wird komplett überschrieben.
Der Positionszeiger zeigt auf den Dateianfang.
Die Datensatzlänge ist durch typ bestimmt.
Es sind sowohl Lese- als auch Schreibzugriffe auf die Datei zulässig.
Rewrite ist eine vordefinierte Prozedur.

Abfrage des Positionszeigers

  Eof(f);                { Dateiende ? }
  FilePos(f);            { Wert des Positionszeigers }
Eof und FilePos sind vordefinierte Funktionen, Eof liefert einen Wert vom Typ BOOLEAN, FilePos einen Wert vom Typ LONGINT.
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
Eof (end of file) prüft, ob der Positionszeiger auf dem Dateiende steht.
Liefert FilePos den Wert 0, so steht der Positionszeiger am Dateianfang.
Der Positionszeiger liefert die Nummer eines Datensatzes.

Setzen des Positionszeigers

  Seek(f, n);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
Der Dateizeiger wird auf die Position n gesetzt. Die erste angebbare Position ist 0. Wird n mit dem Wert FileSize(f) (Anzahl der Datensätze in der Datei) belegt, so wird der Positionszeiger hinter den letzten Datensatz gesetzt.

Ermittlung der Dateigröße

  FileSize(f);
FileSize ist eine vordefinierte Funktion, die einen Wert vom Typ LONGINT liefert.
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
Die Dateigröße gibt die Anzahl der Datensätze an, die sich in der Datei befinden.
Die Größe der Datei in Byte ergibt aus der Anzahl der Datensätze multipliziert mit dem Speicherplatzbedarf für einen Datensatz.
Lesen aus einer typisierten Binärdatei
  Read(f, var);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
var ist eine Variable mit dem Datentyp typ. Diese Variable übernimmt den Inhalt des Datensatzes als Wert, auf den der Positionszeiger zeigt.
Der Positionszeiger wird anschließend auf den nächsten Datensatz gesetzt.

Schreiben in eine typisierte Binärdatei

  Write(f, var);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
var ist eine Variable mit dem Datentyp typ. Der Datensatz wird mit dem Wert der Variablen belegt, auf den der Positionszeiger zeigt.
Der Positionszeiger wird anschließend auf den nächsten Datensatz gesetzt.

Verkürzen einer Datei

  Truncate(f);
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß. Die Datei muß geöffnet sein.
Es werden alle Datensätze ab der Position aus der Datei entfernt, auf die der Positionszeiger zeigt.

Schließen der Datei

  Close(f);
  CloseFile(f);          { zusätzlich in Delphi }
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muß.
Auf die geschlossene Datei sind keine weiteren Operationen möglich, solange sie nicht erneut eröffnet wird.



P. Böhme, 02.09.1995