daTom Geschrieben 29. August 2007 Geschrieben 29. August 2007 Hallo, ich lese eine Datei(xml) mit Hilfe von ifstream ein und gucke ob ein bestimmter Eintrag vorhanden ist. Wenn dieser Eintrag nicht vorhanden ist, soll mein Programm Einträge an einer bestimmten Stelle in der Datei machen. Ich habe leider kaum einen Ansatz, wie ich das lösen soll. Die Klasse ostream bietet ja die Funktion seekp an, mit der man anscheinend den Stream an eine bestimmte Stelle bringen kann. Der Funktion kann ich aber nur einen pos_type übergeben. Gibt es eine Möglichkeit, dass ich nach einem bestimmten Tag suchen kann (z.B. nach </irgendwas>) und mir dann den pos_type dazu geben lassen kann, damit ich dort meinen Eintrag vornehmen kann? Gruß Zitieren
Klotzkopp Geschrieben 29. August 2007 Geschrieben 29. August 2007 Der Funktion kann ich aber nur einen pos_type übergeben.Das ist aber mit Sicherheit nur ein typedef für eine eingebauten vorzeichenlosen Datentyp. Da kannst du also vermutlich ohne Probleme einen unsigned int o.ä. verwenden. Nachtrag: Ich hoffe, dir ist klar, dass du nichts einfügen kannst. Wenn du an einer bestimmten Stelle in die Datei schreibst, überschreibst du das, was da steht. Zitieren
Guybrush Threepwood Geschrieben 29. August 2007 Geschrieben 29. August 2007 Trotzdem kannst du aber nicht einfach mit in der Datei etwas einfügen, weil du so einfach einen Teil überschreiben würdest. Zitieren
break Geschrieben 29. August 2007 Geschrieben 29. August 2007 Hallo, muss es ifstream sein? Wenn Du da mehr Freiheit hast, kannst auch mit CFile arbeiten, oder? Dann liest alles in ein CString rein,und diesen kannst dann manipulieren wenn nötig, und als Ergebnis wieder in die Datei zurück schreiben! Und CString bringt auch eigene Funktionen zum suchen mit, wie: CString::Find("</irgendwas>");, kommt darauf an wie Du es machen musst oder möchtest!? LG break Zitieren
Klotzkopp Geschrieben 29. August 2007 Geschrieben 29. August 2007 @break: Was du da beschreibst, geht genauso auch mit std::ifstream und std::string. Das Grundproblem bleibt, dass man in Dateien nicht direkt etwas einfügen kann. Man muss den Inhalt in den Speicher holen, dort bearbeiten und wieder speichern. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.