binary file/de

From Free Pascal wiki

Deutsch (de)
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;



--Olaf 07:51, 6 January 2014 (CET)