0x00 einlesen und ausgeben



  • VC++ 6.0 Sp5

    Folgendes Problem"
    Ein AVI einlesen und wieder ausgeben

    angefangen 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 9A

    Ist logisch da ich ja ein array mit 0x00 abschliesse
    das mache ich jetzt aber ungewollt

    Hab 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 weiterhelfen

    thx



  • 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.


Anmelden zum Antworten