Textdateien

Textdateien enthalten eine beliebig lange Folge von Zeichen, die zeilenweise angeordnet sind.
Typischerweise besitzen die Zeilen eine unterschiedliche Länge. Eventuell ist die Zeilenlänge begrenzt. Textdateien können nur sequentiell gelesen werden. 

Für Textdateien sieht Pascal den Datentyp TEXT und eine Reihe von vordefinierten Unterprogrammen vor (Read, Readln, Write, Writeln, Eof, Eoln)  

Var   f : TEXT;
f steht hier als Bezeichner für eine Dateivariable und TEXT ist ein vordefinierter Datentyp.


Bindung der Dateivariablen an einen Dateinamen


Assign(f, dateiname);


f ist eine Dateivariable, dateiname eine Zeichenkette, die den Namen einer Datei benennt.
dateiname muss 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 Datei zum Lesen; Reset ist eine vordefinierte Prozedur. 

Reset(f);

f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss, die bezeichnete Datei muss existieren. Dies wird durch Zugriff auf das Dateisystem geprüft. Der Positionszeiger zeigt auf den Dateianfang. 

Eröffnen einer Datei zum Schreiben (Überschreiben); Rewrite ist eine vordefinierte Prozedur.

Rewrite(f);

f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss.
Existiert eine Datei mit dem angegebenen Namen, so wird sie überschrieben, andernfalls wird sie neu erstellt. Der Positionszeiger zeigt auf den Dateianfang.
 

Eröffnen einer Datei zum Schreiben (Anfügen) Append ist eine vordefinierte Prozedur. 

Append(f);

f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss.
Der Positionszeiger zeigt auf das Dateiende.


Abfrage des Positionszeigers


Eof(f); { Dateiende ? }
Eoln(f); { Zeilenende ? }

Eof und Eoln sind vordefinierte Funktionen, die einen Wert vom Typ BOOLEAN liefern.
f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss. Die Datei muss geöffnet sein.
Eof (end of file) prüft, ob der Positionszeiger auf dem Dateiende steht.
Eoln (end of line) ermittelt, ob der Positionszeiger auf einem Zeilenende steht.

Lesen aus einer Textdatei


Readln(f, var_1, ..., var_n);
Read(f, var_1, ..., var_n);


f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss. Die Datei muss geöffnet sein.
var_1, ..., var_n ist eine variable Anzahl von Variablen.
Aus der Datei werden so viele Zeichen gelesen, wie zur Belegung der Variablen mit Werten erforderlich sind. Gelesen wird nur in einer Zeile.
Bei Read steht nach Abschluss der Eingabe der Positionszeiger auf dem Zeichen, an dem die Eingabe beendet wurde. Readln setzt den Positionszeiger auf den Anfang der nächsten Zeile.
Der Aufruf Readln(f) bewirkt das Überlesen einer Zeile aus der an f gebundenen Datei.
Bei der interaktiven Eingabe von Daten sollte stets Readln benutzt werden.

Schreiben in eine Textdatei


Writeln(f, var_1, ..., var_n);
Write(f, var_1, ..., var_n);


f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss. Die Datei muss geöffnet sein.
var_1, ..., var_n ist eine variable Anzahl von Variablen bzw. Ausdrücken. 

Folgende Datentyp(klassen) sind möglich: Integer, Real, Boolean, Char, String.
In die Datei werden so viele Zeichen geschrieben, wie durch die angegebenen Variablen bestimmt. Der Positionszeiger steht auf dem Dateiende.
Writeln nimmt nach Abschluss der Ausgabe einen Zeilenwechsel vor, Write nicht.
Writeln(f) bewirkt die Ausgabe einer Leerzeile.var kann eine Formatierungsangabe nachgestellt werden:


var: w
var: w:d

w ist eine ganze Zahl und gibt an, wie viele Zeichen ausgegeben werden sollen. Die Angabe wird ignoriert, wenn zur Ausgabe des Wert mehr Zeichen als angegeben benötigt werden.
d ist eine ganze Zahl und gibt für reelle Zahlen an, wie viele Nachkommastellen angegeben werden sollen
.

Schließen der Datei 

Close(f);

f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss.
Auf die geschlossene Datei sind keine weiteren Operationen möglich, solange sie nicht erneut eröffnet wird.
Vor dem Schließen wird automatisch der Dateipuffer geleert.
Achtung:
Wird das Programm beendet, ohne das zuvor alle geöffneten Dateien explizit geschlossen wurden, so gehen unter gewissen Umständen die ausgegeben Daten verloren !

Weitere Operationen mit Dateien


Erase(f); { Datei löschen }


f ist eine Dateivariable, die an einen Dateinamen gebunden sein muss.
f muss auf eine externe Datei verweisen, die zum Zeitpunkt der Ausführung der obigen Operationen nicht geöffnet sein darf.

hilfe.pas (nur Lesen einer Datei)   gross_s.pas (Schlüsselwörter werden groß geschrieben und der Quelltext wird neu abgespeichert))