ostringstream/ com-objekt



  • hallo zusammen,

    ich sitze hier schon laenger an einem ziemlich bloeden problem.

    ich habe ein com-objekt heschrieben, das mir aus einer datei hersualesen, modifizieren und dann wieder in eine neue file schreiben soll.

    std::ifstream filein('c:\filein.xyz' ,std::ios::binary); 
    std::ofstream fileout('c:\fileout.xyz',std::ios::binary);
    

    dann lese ich innerhalb der datei einzelne chars aus und schreibe jeden charakter in einen ostringstream:

    std::ostringstream f(std::ios::binary); 
    
    char ch; 
    filein.get(ch); 
    f.put(ch);
    

    diesen ostringstream moechte ich dann am ende aller modifizierungen in meine outputfile schreiben

    fileout << f.str();
    

    mein problem ist jetzt dass in fileout immer nur 6 Bytes hineingeschrieben werden (wenn ich die datei ueber einen hexeditor anschaue) - ich aber sehr viel mehr bytes modifiziere - und auch mehr bytes im ostringstream drin sind. wenn ich die laenge meines streams teste (ueber f.str().length()) erhalte ich die tatsaechliche laenge von z.B. 90 Bytes, jedoch schreibt er immer nur die ersten 6 in fileout.

    wenn ich jedoch direkt fileout << "abc....90" mache sind alle zeichen vorhanden, es kann also nicht an der datei liegen ?!?!?!

    sehr seltsam ist auch, dass wenn ich die funktion eine test-consolen-application einfuege, wird das komplette f geschrieben. da ich in com-programmierung noch nicht wirklich viel erfahrung habe (mein erstes com-objekt), kommt mir nun der gedanke, dass es irgendwie/wo daran liegen koennten und ich vielleicht noch was convertieren muss oder so ?!?!? ich bin total ratlos und fuer jeden vorschlag total dankbar.

    simon


Anmelden zum Antworten