Programmiersprache Pascal

Eröffnen von Dateien

Bevor aus einer Datei gelesen bzw. in eine Datei geschrieben werden kann, muß diese Datei geöffnet werden.

Voraussetzung für das Öffnen einer Datei ist, daß zuvor eine Dateivariable vereinbart wurde und die Bindung der Dateivariablen an eine Datei erfolgte.

Ein Programm kann eine Datei immer nur einmal gleichzeitig öffnen.
Die gleichzeitige Öffnung einer Datei durch verschiedene Programme kann nur durch externe Mechanismen verhindert werden.

Häufig ist die Anzahl der Dateien, die gleichzeitig offen sein können, beschränkt. Diese Beschränkung ist systemspezifisch.
In den meisten Fällen ist die Schranke hinreichend groß.

Eine Datei sollte, sobald keine Zugriffe mehr auf sie vorgesehen sind, schnellstmöglich geschlossen werden.
Dafür sprechen folgende Faktoren:

Im Zusammenhang mit dem Öffnen von Dateien sind bei vielen Pascal-Systemen Systemspezifika zu beachten.


Standard Pascal

Standard Pascal sieht folgende Prozeduren vor:

  Reset(dateivariable);        { Eröffnung zum Lesen }
  Rewrite(dateivariable);      { Eröffnung zum Schreiben }
Der Aufruf dieser Prozeduren löst einen Zugriff auf das Dateisystem bzw. das angesprochene Gerät aus. Ist das Gerät nicht arbeitsbereit bzw. besitzt der Nutzer keine Zugriffsrechte, so kann die Operation scheitern.
Dies gilt natürlich auch, wenn eine zu lesende Datei nicht existiert.

Folgende Anweisungen werden automatisch ausgeführt:

  Reset(INPUT);                { Eröffnung der Standardeingabe }
  Rewrite(OUTPUT);             { Eröffnung der Standardausgabe }
Nach den Regeln von Standard Pascal ist jedoch Voraussetzung, daß INPUT und OUTPUT als Parameter innerhalb der PROGRAM-Anweisung angegeben worden sind.
Fehlt INPUT oder OUTPUT bzw. fehlen beide, so wird die Eröffnung nicht ausgeführt. Lese- bzw. Schreiboperationen mit Zugriff auf die Standardein-/ausgabe führen dann zum Fehler.

Bemerkung:
Einige (aber nicht alle) Pascal-Systeme öffnen die Standardein-/ausgabe unabhängig vom Auftreten von INPUT bzw. OUTPUT als Parameter der PROGRAM-Anweisung.
Dies gilt z.B. für Turbo Pascal, Delphi, XL Pascal, aber nicht für Pascal++.


Turbo Pascal, Delphi

Folgende Prozeduren können zum Öffnen von Dateien eingesetzt werden:

  Reset(dateivariable);        { Eröffnung zum Lesen }
  Rewrite(dateivariable);      { Eröffnung zum Schreiben
                                 Datei wird überschreiben bzw. 
                                 neu erstellt }
  Append(dateivariable);       { Eröffnung zum Schreiben
                                 Datei wird fortgesetzt bzw.
                                 neu erstellt
                                 nur für Textdateien }
Ein Fehlen der Parameter INPUT bzw. OUTPUT führt zu keinen Fehlern, wenn auf die Standardeingabe bzw. die Standardausgabe zugegriffen wird.


Extended Pascal

Extended Pascal stellt folgende Prozeduren zum Öffnen von Dateien bereit:

  Reset(dateivariable);        { Eröffnung zum Lesen }
  Rewrite(dateivariable);      { Eröffnung zum Schreiben
                                 Datei wird überschreiben bzw.
                                 neu erstellt }
  Extend(dateivariable);       { Eröffnung zum Schreiben
                                 Datei wird fortgesetzt bzw.
                                 neu erstellt
                                 nur für Textdateien }


P. Böhme, 05.09.1996