CStdioFile - strings in eine bestehende datei einfügen
-
Hallo!
Wie kann ich, wenn ich eine bestehende txt Datei habe, an bestimmte Stellen
einen String hinzufügen.Derzeit ist es so, dass soviele Zeichen im Text überschrieben werden,
wie der neue String lang ist!Derzeitiger Teilcode:
if(FD.Open("Data.txt",CFile::modeReadWrite | CFile::typeText) == TRUE) { CString line; line.ReleaseBuffer(); for(int i=0;;i += strlen(line)+2) //Bytes für Seek berechnen { FD.ReadString(line); if(line == m_dPFilterDlg.m_person) { i += strlen(line); itoa(i, buf, 10); MessageBox(buf); MessageBox("Person wurde gefunden!", line); FD.Seek(i, CFile::begin); FD.WriteString(" -> donotuse"); break; } } }
Wie kann ich das anders lösen?
Gruß
-
holh schrieb:
Wie kann ich das anders lösen?
Entweder komplett einlesen und neu schreiben, oder zeilenweise in eine andere Datei kopieren und anschließend die alte Datei löschen und die neue umbenennen.
Solange Dateisysteme keine Einfügeoperationen unterstützen, wird das nicht anderes gehen.
-
Oh, deswegen hab ich im Netz nichts dergleichen gefunden, auch nicht in der MSDN...
Danke,
doch wie kann ich am Einfachsten eine Datei löschen bzw. umbenennen?Danke für die schnelle Hilfe immer wieder!
Grüße
-
Versuch's mal mit den (statischen) Methoden CFile::Remove(Name) bzw. CFile::Rename(alterName,neuerName).
(oder die äquivalenten Funktionen man: remove bzw. man: rename aus der <cstdio>)