In Textdatei schreiben
-
Hallo Leute,
folgendes Problem,
es existiert eine textdatei mit 10 Zeilen.
Nun möchte ich in die 5 Zeile was überschreiben.FILE *fp; fp = fopen("test.txt", "a"); fseek(fp, 5, SEEK_SET) fprintf(fp, "Das ist ein test\n");
Mittels fseek() kann der Positionsindikator überall in der Datei positioniert werden. Aber der Text wird immer am Ende der Textdatei geschrieben:((
Gruss Olli.
-
sieh man wie du die datei oeffnest.
schreib mal statt "a" zb. "+w" hin
-
Cpt. Tanga schrieb:
sieh man wie du die datei oeffnest.
schreib mal statt "a" zb. "+w" hinDamit wird meine Textdatei ueberschrieben, das geht nicht.
Ich will im prinzip nur Editieren.Gruss Olli.
-
dann musst du halt mit "r" ueberpruefen ob die datei bereits exitstiert
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_fopen.2c_._wfopen.asp
-
du kannst nicht zeilenweise ueberschreiben...
-
c.rackwitz schrieb:
du kannst nicht zeilenweise ueberschreiben...
ja scheint so.
Meine aktuelle variante, habe eine temp-datei angelegt, in dieser
temp-datei sind dann die alten bzw. neuen einträge. Nach dem sichern
wird die temp-datei umbenannt in die orginal-datei. Ich finde es zwar
irgendwie umständlich, aber was besseres fehlt mir nicht ein.Gruss Olli.
-
Ich wüßte eine bessere Lösung - nimm statt der temp-Datei ein Array, in das du am Anfang die Datei einliest, dann änderst und wieder zurückschreibst.
-
CStoll (off) schrieb:
Ich wüßte eine bessere Lösung - nimm statt der temp-Datei ein Array, in das du am Anfang die Datei einliest, dann änderst und wieder zurückschreibst.
Das ging mir auch schon durch den kopf, aber wenn grosse Dateien geöffnet
werden brauch das Programm viel Speicher oder ?!Gruss Olli.