Programmieren in ANSI-C
| |||||||||||
|
Die Funktion erwartet den Dateinamen und einen Steuer-String als Parameter. Der Steuerstring besteht aus dem Datei-Modus (lesen (r), schreiben (w), anhängen (a) ) und dem Dateityp (Textdatei (t) oder Binärdatei (b) ). Es gibt noch Kombinationen aus den Modi (z.B. "r+b" ), die uns an dieser Stelle allerdings nicht weiter interessieren. Auch auf Binärdateien möchte ich im Moment nicht näher eingehen. Aus ihnen kann im wesentlichen jedes Byte einzeln gelesen werden und der Dateizeiger exakt auf eine bestimmte Stelle gesetzt werden.
Wie gesagt beschäftigen wir uns im Moment nur mit Textdateien. Wir benötigen lediglich die beiden Steuercodes "rt" zum lesen und "wt" zum schreiben.
Moduswechsel: Um vom
Lesemodus in den Schreibmodus zu wechslen oder umgekehrt , müssen
wir die Datei zuerst die Datei schließen
und im neuen Modus wieder öffnen.
Wir schreiben Daten in eine Datei genau wie bei der Bildschirmausgabe. Der Befehl heißt analog fprintf. Die Parameter und Formatangaben sind ebenfalls FAST gleich. Gleiches gilt auch für fscanf. Hier ist zu beachten, dass das erste Zeichen im Formatstring ein Leerzeichen sein MUSS, damit evtl. Leerzeilen in der Datei überlesen werden. Beide Funktionen erwarten als ersten Parameter den Dateizeiger:
|
Nach jedem Leseversuch müssen wir prüfen, ob evtl. das Dateiende erreicht wurde. Zu beginn müssen wir zusätzlich prüfen, ob überhaupt etwas in der Datei steht. Dazu verwenden wir die Funktion feof( datei_z ). Sie gibt TRUE zurück, wenn das Dateiende erreicht wurde. Eine while-Schleife kann dann so aussehen: while( !feof( datei_z ) ) { Anweisungen; }.
Um eine Datei wieder von vorne ab zu lesen, können wir mit rewind( datei_z ) den Dateizeiger wieder an den logischen Dateianfang setzten.
Haben wir alle
Operationen beendet, wir unsere Datei mit fclose( datei_z )
wieder geschlossen.
Das Beispeil demonstriert den Umgang mit Dateien. Dazu ist die
mitgelieferte Datei kunden.txt ins gleiche Verzeichnis wie die
exe-Datei zu kopieren. Es wird eine neue Datei kundenneu.txt
angelegt, die keine Duplikate mehr enthält.
|
© Gerhard Zapf
|
||||
Letzte Änderung: 11.09.2003 |
||||