Schreiben von Daten in eine Binärdatei

Index vorige Seite nächste Seite

Eine Information schreibt man mit fwrite(&Information,Groesze,Anzahl,Datei) in eine Datei. Information stellt hier die Variable dar, deren Inhalt gespeichert werden soll. Groesze stellt die Größe der einzelnen Einheit in Bytes dar. Anzahl ist die Zahl der Einheiten, die gespeichert werden sollen, Datei die Anrede der Datei. Gleich ein Beispiel:

Wir wollen eine Datei neu anlegen. Sie soll den Namen "punkte.dat" tragen und im aktuellen Verzeichnis liegen. In diese Datei soll eine Reihe von 2-dimensionalen Punkten eingespeichert werden und zu Anfang soll die Anzahl der Punkte angegeben werden.
float x[20],y[20];      // Koordinaten der maximal 20 Punkte
int anz;                // Anzahl der Punkte
...
FILE *stream;           // Anrede fuer die Datei
...
stream=fopen("punkte.dat","wb");   // legt die Datei an
fwrite(&anz,sizeof(int),1,stream);
     // schreibt den Inhalt der Variable anz in die Datei
fwrite(&x[0],sizeof(float),anz,stream);
     // schreibt anz x-Koordinaten in Datei, beginnend mit x[0]
fwrite(&y[0],sizeof(float),anz,stream);
     // schreibt anz y-Koordinaten in Datei, beginnend mit y[0]
fclose(stream);                    // schlieszt Datei
...
Oder nochmal explizit:
Möchte man eine Variable von einem bestimmten Typ abspeichern, gibt man an fwrite
- die Adresse der Variable
- den Speicherbedarf der Variablen
- eine 1
- die Anrede der Datei

Möchte man n Feldinhalte eines Feldes von einem bestimmten Typ abspeichern, gibt man an fwrite
- die Adresse des 0. Feldinhaltes
- den Speicherbedarf eines Feldinhaltes
- n
- die Anrede der Datei


Index vorige Seite nächste Seite

Autor: Ulrich Kritzner