Programmiersprache Pascal

Datei-Datentypen

Der Umgang mit Dateien ist wesentlich für die Arbeit vieler Programme. Pascal bietet zur Unterstützung Datei-Datentypen an. Zu beachten ist dabei folgendes:

Standard Pascal

Ein Datei-Datentyp (Filetyp) wird wie folgt deklariert:

  TYPE name = FILE OF typ;
Für den Basisdatentyp typ bestehen gewisse Einschränkungen:
Nicht zulässig sind zum Beispiel andere Datei-Datentypen oder strukturierte Datentypen mit einer Komponente, die einen Datei-Datentyp besitzt.
Dateien mit dem obigen Typ werden auch als typisierte Binärdateien bezeichnet.

Ferner stellt Standard Pascal einen vordefinierten Datei-Datentyp bereit:

  TEXT
Textdateien spielen eine besondere Rolle bei der Kommunikation mit dem Nutzer.
Alle Ein-/Ausgaben über die Standardeingabe (INPUT) bzw. die Standardausgabe (OUTPUT) werden normalerweise über Textdateien abgewickelt.

Datei-Datentypen (Filetypen) sind aggregierte Datentypen.

Beispiele:

  TYPE f1 = FILE OF INTEGER;
       f2 = FILE OF CHAR;
       f3 = FILE OF RECORD ... END;
Auf diesem Wege werden typisierte Binärdateien beschrieben, d.h. die Dateien enthalten Daten im rechnerinternen Format, Lese- und Schreiboperationen kommen ohne Konvertierung aus.

Die Arbeit mit Textdateien (Typ TEXT) erfordert dagegen Konvertierungen aus dem rechnerinternen Format in das Textformat bzw. aus dem Textformat in das rechnerinterne Format.

Bemerkung:
Mit einer Datei vom Typ FILE OF CHAR wird anders umgegangen als mit einer Textdatei mit dem Typ TEXT.

Auf Textdateien kann immer nur sequentiell zugegriffen werden.
Auch typisierte Binärdateien sind sowohl in Standard Pascal als auch in Extended Pascal nur für sequentielle Zugriffe vorgesehen.
Einige Pascal-Systeme bieten jedoch erweiterte Möglichkeiten.


Turbo Pascal, Delphi

Es gibt zusätzlich sogenannte untypisierte Binärdateien:

  FILE
Diese Form ist nützlich für Dateien, die keine bzw. keine (einfach beschreibbare) reguläre Struktur besitzen.

Delphi erlaubt alternativ zu TEXT die Verwendung von TextFile.


Extended Pascal

Mit Extended Pascal neu eigeführt worden sind Direktzugriffsdateien:

  TYPE name = FILE[indextyp] OF basistyp;
Direktzugriffsdateien müssen nicht sequentiell gelesen bzw. geschrieben werden:
Es ist möglich, auf Datensätze direkt zuzugreifen.

Bemerkung:
Einige Pascal-Versionen erlauben - abweichend vom Pascal-Standard - für typisierte Binärdateien Zugriffe, wie sie für Direktzugriffsdateien typisch sind.


Dateivariablen

  VAR f : FILE OF ...;
      t : TEXT;
deklarieren Dateivariablen (Filevariablen).

Eine Dateivariable muß - um konkrete Ein- bzw. Ausgabeoperationen vornehmen zu können - an eine konkrete Datei gebunden werden.
Das Vorgehen hierzu unterscheidet sich in den verschiedenen Pascal-Versionen teilweise relativ stark.

Vordefinierte Dateivariablen sind:

  INPUT       Standardeingabe
  OUTPUT      Standardausgabe
Standard Pascal

Die Dateinamen werden über die Parameter der PROGRAM-Anweisung vermittelt.
Viele Pascal-Systemen weichen vom Standard ab und sehen ein anderes Vorgehen vor.

Beispiel:

  PROGRAM beispiel(f, g, INPUT, OUTPUT);
Das Programm nutzt die Standardein- und -ausgabe sowie zwei weitere Dateien. Beim Aufruf des Programms muß festgelegt werden, an welche Dateien (E/A-Geräte) die Dateivariablen f und g zu binden sind.
Dies kann z.B. mit Mitteln des Betriebssystems oder durch eine Nutzerabfrage geschehen.

Eine Reihe von Systeme ignorieren diesen Mechanismus und stellen - systemspezifisch - Unterprogramme für die Bindung der Dateivariablen an eine Datei bereit.

Extended Pascal stellt für den Prozeß der Bindung spezielle Sprachmittel bereit.

Siehe



P. Böhme, 05.09.1996