An "Textmarke" in Textfile schreiben
-
Hallo,
ich möchte gerne an eine bestimmte Position in einem Textfile einen Wert schreiben.
In diesem Textfile sollen sich verschiedene Textmarken befinden hinter der dann der Wert geschrieben wird. Also z.B:Textmarke_1= "Wert1"
Textmarke_2= "Wert_2" ....
Öffnen und schreiben kriege ich hin, nur entweder wird in die Datei geschrieben und gelöscht oder ans Ende der Datei geschrieben.
Hat jemand eine Idee, wie ich Textmarken "anspringen" und dahinter schreiben kann?
Kann man überhaupt in einem Textfile Textmarken erstellen oder muß nach Schlüsselwörtern wie "Textmarke_1" gesucht werden und danach wird geschrieben?
Bin für jede Hilfe dankbar.Gruß
Mark
-
Alles einlesen, suchen, ersetzen und dann wieder zurückschreiben.
-
Hallo,
danke für den Tipp. Dachte ich mir, dass das mit Textmarken nicht geht.
Das Einlesen und Suchen habe ich hinbekommen. Ersetzt und zurückgeschrieben wird auch etwas, nur nicht so wie ich mir das vorstelle.
Ich glaube beim Replace geht etwas schief.Ich poste mal den Code, vielleicht findet jemand den Fehler auf Anhieb.FHandle = fopen (FName , "r"); pFile = fopen ("c:\\myfile.txt" , "w"); if (FHandle == NULL) perror ("Error opening file"); else { while ( ! feof (FHandle) ) { fgets (buffer , 100 , FHandle); if ((buffer[0]=='§') || (buffer[0]=='\r') || (buffer[0]=='\n')) { // dann mach nichts, weil bei § und leere Zeile halt nix gemacht werden soll } else if (strstr(buffer, "wert1") == buffer) { a.Replace("wert1", "xxxxxxxxxxxxxx"); cout<<"wert1 gefunden"<<endl; } else if (strstr(buffer, "wert2") == buffer) { a.Replace("wert2", "yyyyyyyyyyyyy"); cout<<"wert2 gefunden"<<endl; } else if (strstr(buffer, "wert3") == buffer) { a.Replace("wert3", "zzzzzzzzzzzz"); cout<<"wert3 gefunden"<<endl; } fwrite (buffer , 1 , sizeof(buffer), pFile); //cout<<buffer<<endl; } fclose (FHandle); } return 0;Es soll also aus einem Textfile gelesen werden, bestimmte "werte" ersetzt werden und dann soll das file wieder zurückgelesen oder wie hier in eine andere Datei gespeichert werden.
Das "cout" habe ich nur zur Überprüfung eingebaut, ob der Wert gefunden wurde.Gruß
Mark
-
string schrieb:
...
Das gehört eher ins ANSI-C-Forum und nicht ins C++-Forum.
-
Tachyon schrieb:
string schrieb:
...
Das gehört eher ins ANSI-C-Forum und nicht ins C++-Forum.
An sich richtig, nur werden die ihn wieder ins C++ Forum verweisen (cout), auch wenn der Code eigentlich fast reines C ist.
-
Das gehört eher ins ANSI-C-Forum und nicht ins C++-Forum.
Hallo,
also, ich kann da momentan schwehr zwischen C und C++ trennen, weil ich noch relativ neu am Thema bin. Ziel für mich ist eigentlich C++ und ich darfs kaum sagen sonst wird wieder mit Verschiebung gedroht - MFC.
Mir wäre erstmal sehr damit geholfen wenn jemand ein Tipp für mein Problem hätte.Gruß
Mark
-
Vorschlag:
Du holst dir jetzt ein wirkliches C++-Buch/Tutorial und probierst das ganze nochmal mit C++-Mitteln, die da wären std::ifstream / std::ofstream / std::string usw.Container und Algorithmen findest du hier:
http://www.cplusplus.com/reference/Und dann helfen wir dir hier gerne.

-
Vorschlag:
Du holst dir jetzt ein wirkliches C++-Buch/Tutorial und probierst das ganze nochmal mit C++-Mitteln, die da wären std::ifstream / std::ofstream / std::string usw.Vielen Dank für Deinen guten Vorschlag, dass hilft mir viel weiter!
Nochmals Danke!