0x00 einlesen und ausgeben
-
VC++ 6.0 Sp5
Folgendes Problem"
Ein AVI einlesen und wieder ausgebenangefangen habe ich damit
# include <iostream> # include <stdio.h> # include <string> # include <fstream> # include <stdlib.h> using namespace std; int main (int argc, char **argv) { char a[4]; string LIST="LIST"; string movi="movi"; string pfad (argv[1]); string cpfad; int pfadl=pfad.size(); for (int x=0;x<=pfadl;x++) { cpfad+=pfad[x]; if (pfad[x]==0x5c) {cpfad+="\\";} } fstream f(cpfad.c_str(),ios::binary|ios::in); if (!f.good()) {cout <<"fehler bei open"<<endl;} fstream g("c:\\test.avi",ios::binary|ios::out); if (!g.good()) {cout <<"fehler bei open1"<<endl;} do { do { f.get(a,5); cout <<"["<<a<<"]"<<endl; g.write(a,strlen(a)); } while (a!=LIST); f.get(a,5); cout <<a<<endl; g.write(a,strlen(a)); f.get(a,5); cout <<a<<endl; g.write(a,strlen(a)); } while (a!=movi); f.close(); g.close(); return 0; }mir gehts erstmal nur um den header
sprich eine 1 zu 1 kopie
(lese bis LIST gefunden
wenn LIST....movi gefunden header fertig)
primitiv aber ich versteh`s
jetzt hab ich aber das problem das mir die 0x00 wefallen
unter umstaenden auch 0x30 00 5F 9AIst logisch da ich ja ein array mit 0x00 abschliesse
das mache ich jetzt aber ungewolltHab hier ein paar infos gefunden alla Cstring
wenn ich ehlich bin will ich aber jetzt nicht umbedingt C dafuer benuzten
abgesehen davon frage ich mich ob das mit c++ nicht "einfacher" zu loesen waere
und die beispiel fuer Cstring waren mir etwas zu kompliziert
auch http://www.cplusplus.com/ref/ konnte da nicht wirklich weiterhelfenthx
-
Also: Zunächst einmal ist CString eine Klasse und kann schon alleine deswegen kein C sein. Desweiteren ist diese Klasse ein Teil der MFC hat also mit dem std::string nichts zu tun. Abgesehen davon, dass dein Problem im C++ Forum besser aufgehoben wäre kann ich dir nur einen std.:vector anstelle eines std::string empfehlen wenn du die Datei komplett in den Speicher lesen willst. Guck mal in die C++ FAQ. Da wurde das schon zur Genüge behandelt.