binary file/de
│
Deutsch (de) │
English (en) │
polski (pl) │
Zurück zu den Dateitypen.
Binärdatei
Eine Binärdatei eignet sich für die Verarbeitung von Dateien jeder Grösse.
Bei Binärdateien, wird der Inhalt einer Datei Zeichen für Zeichen eingelesen. Umgekehrt wird die Datei Zeichen für Zeichen geschrieben.
Wird eine Datei als Binärdatei geöffnet, dann kann an einer beliebigen Stelle in der Datei ein Zeichen geändert werden.
In eine mit FILE OF definierte Datei können nun Daten desselben Typs geschrieben und gelesen werden.
Mit FILE OF können Binärdateien u. a. wie folgt definiert werden:
var
datByte: File of Byte; // liest und schreibt immer ein Zeichen
datChar: File of Char; // liest und schreibt immer ein Zeichen
datInt: File of Integer; // liest und schreibt immer zwei Zeichen
...
Mit dem Befehl SEEK kann auf jede Stelle in der Binärdatei zugegriffen werden.
Datei erstellen
var
datDatei: file of char;
chrZeichen: char;
begin
Assignfile(datDatei, 'D:\beispiel.txt'); // Weist der Variablen txtDatei den Namen der Datei zu und öffnet die Datei
ReWrite(datDatei); // Eine alte Datei wird soweit vorhanden überschrieben
chrZeichen := 'A';
Write(datDatei, chrZeichen); // Schreibt das erste Zeichen in die neue Datei
...
end;
Datei schliessen
var
datDatei: file of char;
chrZeichen: char;
begin
...
CloseFile(datDatei); //Schliesst die Datei
end;
Ein Zeichen an das Ende einer bestehende Datei anfügen
Bei Binärdateien kann mit Hilfe des Befehls Seek am Ende einer Datei ein Zeichen hinzugefügt werden.
var
datDatei: file of char;
chrZeichen: char;
begin
AssignFile(datDatei, 'd:\beispiel.txt');
Reset(datDatei); // Setzt den Dateizeiger auf den Dateianfang
seek(datDatei, FileSize(datDatei)); // Ermittelt das Dateiende und setzt den Dateizeiger auf das Dateiende
chrZeichen := 'b';
Write(datDatei, chrZeichen); // Schreibt ein weiteres Zeichen an das Dateiende
...
Ein Zeichen in einer bestehende Datei ersetzen
Bei Binärdateien kann mit Hilfe des Befehls Seek an einer beliebigen Stelle der Datei ein Zeichen ersetzt werden.
var
datDatei: file of char;
chrZeichen: char;
begin
AssignFile(datDatei, 'd:\beispiel.txt');
Reset(datDatei); // Setzt den Dateizeiger auf den Dateianfang
seek(datDatei, 1); // Ermittelt das zweite Zeichen in einer Datei
chrZeichen := 'f';
Write(datDatei, chrZeichen); // Überschreibt das zweite Zeichen in der Datei
...
Datei komplett lesen
var
datDatei: file of char;
chrZeichen: char;
begin
AssignFile(datDatei, 'D:\beispiel.txt');
Reset(datDatei);
read(datDatei, chrZeichen);
...
while not eof(datDatei) // mach weiter, solange noch Daten zu lesen sind
do begin
...
read(datDatei, chrZeichen); // liest ein einzelnes Zeichen
end;
CloseFile(datDatei);
end;