Datei gleichzeitig lesen und schreiben
-
Servus,
Ich hab noch ein Problem:
Wie kann ich in eine Datei gleichzeitig lesen und was schreiben?
kurze Erläuterung:
Ich lasse mir die Hexwerte der Datei ausgeben und möchte explizit das ändern was ich gerade im Puffer habe.Danke für die Hilfe
MfG Andy
-
Hallo,
eine Datei, die zum Lesen UND Schreiben öffnen willst, musst du so öffnen:
FILE* datei; datei=fopen("test.txt", "r+");
Du kannst auch nicht in der Datei rumschreiben, falls ich dich richtig verstanden habe. Du musst die Datei komplett einlesen, die entsprechenden Daten ändern, und dann die alte Datei praktisch überschreiben.
-
Hi CarstenJ, da muss ich dir leider widersprechen
Mann kann auch innerhalb einer Datei Daten verändern ohnen die komplette Datei zu puffern. Man muss lediglich darauf achten nur die gewünschten Daten zu verändern. Ansonsten überschreibt man ungewollt Daten. Das ist glaube ich das was Andy711 wollte.#include <stdio.h> #include <string.h> int main( int argc, char *argv[] ) { FILE *pFd; char cBf[4]; pFd = fopen( "test.txt", "r+" ); fread( cBf, sizeof( char ), 4, pFd ); /* Die ersten 4 Zeichen einlesen */ strcpy( cBf, "ABCD" ); /* Daten durch ABCD ersetzen */ fseek( pFd, 0, SEEK_SET ); /* Wieder zu Position 0 springen */ fwrite( cBf, sizeof( char ), 4, pFd ); /* Ersten 4 Zeichen überschreiben */ fclose( pFd ); return 0; };
-
das hilft mir weiter!
vielen Dank!
MfG Andy
-
@Herrmann:
Ja, so gehts natürlich. Allerdings muss er die Datei ganz genau kennen und wissen, an welcher Stelle was steht, sonst werden womöglich die falschen Zeichen überschrieben. Ich dachte eher daran, dass die Datei auch dursucht werden soll und die gefundenen Stellen überschrieben werden sollen. Seis drum, wenns hilft isses ja gut