Öffnen und Schließen der Datei

Object Pascal im Detail - Dateien www.delphi-treff.de 113 const FN = Dateiname ; Dies stellt die Datei in Relation zum gerade aktuellen Arbeitsverzeichnis. Da sich dieses aber durch verschiedene Aktionen ändern und auch von Programmlauf zu Programmlauf unterschiedlich sein kann, verzichten wir hier ganz bewusst auf eine relative Pfadangabe.

4.11.4. Die Dateitypen

Wir unterscheiden drei Dateitypen: typisierte und untypisierte Dateien, sowie Textdateien: var UntypisierteDate: file; TypisierteDatei: file of Datentyp; Textdatei: TextFile; Der untypisierten Datei liegt, wie der Name schon sagt, kein konsistenter Datentyp zugrunde oder er ist uns unbekannt. Deklariert werden solche Dateien durch das Schlüsselwort file. Bei typisierten Dateien folgt hinter file noch die Angabe des Datentyps, getrennt durch das Schlüsselwort of. Dieser Datentyp entspricht den Standardtypen oder einer Zusammensetzung davon, in Form eines Records. Hier dürfen wir nichts verwenden, was intern durch einen Zeiger angesprochen wird. Somit keine dynamischen Arrays, Strings oder Instanzen von Klassen beispielsweise. Die Größe eines Datensatzes steht bereits zum Zeitpunkt der Kompilierung fest.

4.11.4.1. Öffnen und Schließen der Datei

Egal welchen Dateityp wir ansprechen wollen, die folgenden Mechanismen sind für alle, in leicht abgewandelter Form, identisch: Zunächst verbinden wir mittels AssignFile unsere Dateivariable mit dem voll qualifizierten Dateinamen. Über die jetzt initialisierte Dateivariable laufen alle Zugriffe auf die Datei; der Dateiname wird fortan nicht mehr benötigt. Der Gültigkeitsbereich für Öffnen und Schließen einer Datei sollte bei beiden übereinstimmen. Spätestens jedoch am Ende des Programms muss die Datei mit CloseFile wieder geschlossen werden, da sonst Datenverlust droht. Schreibvorgänge werden mitunter gepuffert, so dass erst dann auf die Festplatte geschrieben wird wenn genügend Daten vorhanden sind, das Entpuffern angestoßen wird oder die Datei durch Schließen in einen konsistenten Zustand versetzt wird. Object Pascal im Detail - Dateien www.delphi-treff.de 114 program LeereUntypisierteDatei; {APPTYPE CONSOLE} uses SysUtils; const FN = C:\Dokumente und Einstellungen\user\UntypisierteDatei.dat ; var UntypisierteDatei: file; begin AssignFileUntypisierteDatei, FN; RewriteUntypisierteDatei; CloseFileUntypisierteDatei; end. Passen wir den Dateinamen in dieser Konsolenanwendung an und lassen das Programm laufen, so sehen wir nur ein kurzes Aufflackern der Konsole. Es wird lediglich eine leere Datei durch Rewrite erzeugt und danach beendet sich das Programm. Existiert die Datei bereits vorher, dann wird sie gelöscht und neu erstellt. Die beiden anderen Möglichkeiten eine Datei zu öffnen, sind Reset und Append. Reset öffnet eine vorhandene Datei, mit dem in der globalen Variable FileMode angegebenen Zugriffsmodus: Modus Wert Bedeutung fmOpenRead Öffnet eine Datei zum Lesen fmOpenWrite 1 Öffnet eine Datei zum Schreiben fmOpenReadWrite 2 Öffnet eine Datei zum Lesen und Schreiben Voreingestellt, aber veränderbar, ist hier 2. Für Textdateien hat FileMode keine Bewandtnis, denn Reset öffnet Textdateien immer zum Lesen. Um aber auch bestehenden Textdateien Text hinzuzufügen, gibt es Append. Damit öffnen wir eine Datei, um Text anzuhängen. Bei untypisierten Dateien besitzen Rewrite und Reset einen weiteren, optionalen Parameter, der die Blockgröße angibt. Voreingestellt ist hier 128. Object Pascal im Detail - Dateien www.delphi-treff.de 115

4.11.4.2. Schreiben und Lesen