JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=7df15be0ab00faf8d88465020a4d84b0Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[fstream] Datei an bestimmter Stelle überschreiben

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 09.07.2007, 19:03    Titel: [fstream] Datei an bestimmter Stelle überschreiben Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 09.07.2007, 19:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.07.2007, 19:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum