Gespräch mit einer Datei

Index vorige Seite nächste Seite

Bevor man sich mit einer Datei unterhalten kann, muß man sie bei ihrem Namen rufen. Das geschieht im C mit der Funktion fopen. Außerdem muß man der Datei sagen, wie man sich mit ihr unterhalten will. Will man die Datei erst einmal neu erzeugen? Will man nur Daten abfragen, ohne die Daten zu verändern? Will man nur schreiben? Will man vielleicht lesen und schreiben? Soll die Datei byteweise die Information aus dem Speicher übernehmen oder soll sie als von Menschen lesbarer Text erscheinen? Dies übergibt man im Modusstring. Sehen wir uns ein Beispiel an:
FILE *Stream;
Stream=fopen("datei.txt","wt");
In diesem Beispiel öffnen wir eine binäre Datei ausschließlich zum schreiben. Sie trägt den Namen "datei.txt". Was es mit der geheimnisumwitterten Variable Stream vom Typ File* auf sich hat, wird weiter unten im Text geklärt. Erstmal zum Modusstring:
  Zeichen  Bedeutung

  r        bereits existierende Datei soll nur zum Lesen geöffnet
           werden

  w        Datei soll neu erzeugt und nur zum Schreiben geöffnet
           werden. Existiert die Datei bereits, wird sie geleert

  a        Datei soll für anfügende Schreiboperationen geöffnet
           werden. Existiert die Datei noch nicht, wird sie
           angelegt

  r+       wie r, nur daß auch Schreiboperationen erlaubt sind

  w+       wie w, nur daß auch Leseoperationen erlaubt sind

  a+       wie a, nur daß auch Leseoperationen erlaubt sind
Zusätzlich zu diesen Zeichen kann noch ein t oder ein b angefügt werden:
  Zeichen  Bedeutung

  t        Von Menschen lesbare Textdatei

  b        nur maschinenlesbare Binärdatei
Einige Beispiele :
fopen("readme.txt","rt");
  // oeffnet Textdatei "readme.txt" zum Lesen

fopen("/home/username/beispiel.dat","w+b");
  // legt Binaerdatei zum Schreiben und Lesen neu an

Genau wie im wirklichen Leben werden wir die Datei im folgenden Gespräch jedoch nicht mehr mit ihrem vollen Namen, sondern nur noch kurz mit Du anreden, da diese uns dann ihre volle Aufmerksamkeit bereits gewidmet hat und weiß, wer gemeint ist. Diese Kurzanrede ist die Dateivariable. Eine Dateivariable ist im C vom Typ FILE*. Die Deklaration kann so aussehen:
FILE *Du;
Du ist jetzt Anrede und Dateivariable. Man kann auch, wenn man sich mit mehreren Dateien gleichzeitig unterhalten will, mehrere Anreden definieren:
FILE *Datei1, *Datei2, *Datei3;
Ist das Gespräch beendet und alles gesagt und getan, muß man sich nett wieder verabschieden, und zwar mit fclose. Der Aufruf kann dann so aussehen:
fclose(Du);
Hat man mit mehreren Dateien geredet, muß man natürlich auch alle wieder verabschieden:
fclose(Datei1);
...
fclose(Datei2);
...
fclose(Datei3);


Index vorige Seite nächste Seite

Autor: Ulrich Kritzner