Datei streams
-
Guten tag Leute, ich habe grade eine Funktion geschrieben
in der ich die Filestreams benutze. Ich benutze
diese um ein eine Datei einzulesen und schreibe diese dann
mit anderen Namen neu, nur ist die neue Datei aus
irgendeinem Grund immer größer und nicht ausführbar ( es geht
um eine DLL die dabei wohl geschrottet wird ). Ich habe
schon ne Zeit lang rumprobiert und auch gegooglet aber
bin leider nicht weiter gekommen deswegen der post. Habe schon
das meiste auskommentiert und trotzdem will es einfach nicht.
Hier mal der Code der jetzt noch läuft, jedoch beim schreiben
die Datei auch wieso auch immer größer macht:int sizeoffile = 0; ifstream file; file.open(path, ios::binary ); if(file.fail() || !file.is_open()) { file.close(); return; } file.seekg (0, ios::end); sizeoffile = file.tellg(); file.seekg (0, ios::beg); char *buffer = new char[sizeoffile]; file.read(buffer, sizeoffile); ofstream datei; datei.open("newfile.dll", ios_base::out); datei.write(buffer, sizeoffile); file.close(); datei.close();Die neu geschriebene DLL ist um ca 0,2 MB größer
und ich kann mir einfach nicht erklären warum.
Wenn ihr wisst was ich falsch mache, bitte ich euch
mir meinen Fehler zu erklären, und ggf ein Beispiel
zu posten wies richtig geht.ps:
Das öffnen und einlesen der Datei klappt,
das schreiben auch jedoch falsch wie beschrieben :>Gruß
Heinz
-
Das ist alles richtig.
Ich kann mir nur noch exotische Fehlerquellen ausdenken, die aber höchstwahrscheinlich nicht vorliegen:
- Ist die Datei vielleicht zu groß für den Arbeitsspeicher?
- Wird die Datei während des Lesens von einem anderen Programm verändert?
-
was passiert dnen, wenn du nen txt-dokument nimmst? sieht eigtl korrekt aus
und wieso machst du das eigtl so umständlich?
du könntest ja auch von der einen datei direkt in die andere schreiben!?bb
-
In Zeile 15 würde ich noch mal
datei.open("newfile.dll", ios_base::binary );versuchen.
-
Werner Salomon schrieb:
In Zeile 15 würde ich noch mal
datei.open("newfile.dll", ios_base::binary );versuchen.
Sowas simples und ich komm nichtmal selber drauf :S
Daran lags danke dir