000
13.09.2005, 21:55 Uhr
CDW
|
Ok, ich bin nicht wirklich C++ bewandert und brauche den folgenden Code nur als Beispiel. Als Umgebung setze ich MS VC++ 6.0 ein, aber es sollte schon möglichst "reines C++" sein.
Ziel: ich möchte auf eine Datei zugreifen, bestimmte Stellen ändern und eben wieder schließen. Ansatz:
C++: |
#include <fstream.h> #define OFFSET 10
char aenderung[2]={0x1,0x2};
int main() {
fstream file ("datei.bin",ios::out | ios::binary); if (file.is_open()) { file.seekp(OFFSET,ios::beg); file.write( aenderung,sizeof aenderung); file.close(); } return 0; }
|
dieser Code öffent zwar die Datei, aber überschreibt alles bis zu der Stelle mit 0, schreibt die Änderung rein und "schneidet" die Datei ab. Die mir bekannten Pascal, C-Zugriffsfunktionen und WinAPI machen nichts der gleichen. Mache ich hier also was falsch oder muss man zwingend alles selber bis zu der stelle auslesen, ändern und noch weiter auslesen und dann speichern? Meine eigene Recherche ließt mich zwar den Code da oben schreiben, allerdings fand ich keine Beispiele, wo man eben gezielt was ändern kann (nur wie man ließt und schreibt). -- EB FE |