|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.07.2007, 19:03 Titel: [fstream] Datei an bestimmter Stelle überschreiben |
|
|
Ich möchte aus einer Binärdatei an bestimmen Positionen Daten auslesen und danach überschreiben. Das auslesen klapp auch shcon wunderbar:
CPP: | File.seekg(0xE4 , std::ios::beg);
File.read((char*)&iBuffer, 4);
Buffer.str("");
Buffer << iBuffer;
|
Und schon habe ich im stringstream Buffer den ausgelesen Integer als String. Beim schreibne wollte ich es genauso machen. Nurleider wird entweder alles angehängt, egal, wo ich positioniert bin (wenn ich ios::app verwende) oder einfach alles mit Nullen gefüllt (d.h. die Daten stehen an der richitgen Stelle, aber alles davor ist jeweils 0, dahinter steht gar nix mehr. Er hat also die Daten an den Stellen geschreibne und die Lücken dazwischen mit 0 gefüllt).
Ich möchte aber einfach nur die Datei an einer bestimmten Stelle überschreiben. Wiemache ich das mit fstreams? (ich bneutze jeweils ios::out, ios::binary, und habe ios::ate, ios::app auch probiert.) _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 09.07.2007, 19:34 Titel: |
|
|
also ios::ate und ios::app hängen, wie der name schon sagt, natürlich alles ans Ende. Aber ich kann mich erinnern, dass ich auch schon mal Probleme mit dem Positionieren hatte... Ich hab dann einfach die ganze Datei eingelesen, die betreffende Stelle überschrieben und die Datei dann überschrieben. Bei kleineren Dateien kann man das wunderbar machen, weil man dann auch die schönen Funktionen von std::basic_string nutzen kann (also find(), replace(), operator[] etc.)
Gruß DXer |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.07.2007, 19:43 Titel: |
|
|
Tja, komplett einlesen ist mir halt auch schon eingefallen, aber ich fands net so schön. Ich meine, etwas in der mitte einzufügen könnte shwierig sein, aber wenn man nur was überschreiben will, seh ich keinen Grund, dass es daüfr keine einfache, standardmöglichkeit gebne sollte. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|