Textdatei verändern
-
Hallo,
eines Vorweg, ich bin in Sachen MFC genauso noch ein Anfänger, wie ich hier auch neu im Forum bin.
Zu meinem Problem: Ich möchte eine Ini-Datei verändern. Dabei möchte ich meinen eigenen Text in die Datei einfügen. Mit CFile::Write() und CSdioFile::Write() wird zwar mein Text in die Datei geschrieben gleichzeitig jedoch auch der vorhandene Text überschrieben. Ich möchte den Text allerdings nur einfügen und nicht ersetzen.Würd mich freuen, wenn mir jemand helfen könnte... Danke!
Gruß,
freddie
-
für ini dateien gibts schon vorgefertigte funktionen um werte zu lesen und zu schreiben
da musst du dir ned unbedingt unnötig arbeit machen
vorrausgesetzt die ini wurde auch mit den funktionen erstellt und sieht in etwa so aus
[section1] wert1=blub wert2=bla [section2] wert1=blub ...falls dus trotzdem mit cfile machen willst benutz im konstruktor oder in der open funktion nicht CFile::modeCreate sonst wird der ursprüngliche text gelöscht
-
Danke für den Tip mit writeprivateprofilestring! Ich werd mir das die nächsten Tage mal nochmal genauer anschauen, aber ich denke das könnte recht nützlich sein.
falls dus trotzdem mit cfile machen willst benutz im konstruktor oder in der open funktion nicht CFile::modeCreate sonst wird der ursprüngliche text gelöscht
Also ich öffne die Datei mit
cf.Open(m_IniPath,CFile::modeWrite,NULL)also nicht mit modeCreate und trotzdem wird der ursprüngliche Text gelöscht. Oder hast du noch etwas anderes gemeint?
-
probiers mal mit
cf.Open ( m_IniPath, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite, NULL );
-
Damit hab ich's auch schon mal probiert. Funktioniert aber leider auch nicht...
-
Was du vorhast, geht schlicht und einfach nicht, zumindest nicht mit den zur Zeit verfügbaren Dateisystemen. Dir bleibt nichts anderes übrig, als die Datei in den Speicher zu lesen, dort zu modifizieren, und wieder zu speichern.
-
mitten in der datei kannst du nix einfügen
aber am ende
ruf mal cf.SeekToEnd(); auf bevor du schreibst
-
Ok, trotzdem danke für eure Hilfe... Hab ja jetzt doch einige Anregungen bekommen.
Gruß,
freddie