IStream* als txt speichern
-
Hallo Leute,
ich habe einen IStream*.
Die Daten würde ich gernen in txt file speichern.
Kann mir einer helfen und sagen wie das geht.
Danke für Eure Hilfe
-
Du rufst einfach das ISequentialStream::Read auf und schreibst das Ergebnis in die Textdatei... oder was für eine Frage hast Du genau?
-
Hab es so gelöst:
CFile cFile(File.operator LPCTSTR(), CFile::modeReadWrite|CFile::modeCreate); HGLOBAL hGlobal; HRESULT hr = GetHGlobalFromStream(pStream, &hGlobal); DWORD cbSize = GlobalSize(hGlobal); BYTE *hPtr = (BYTE *)GlobalLock(hGlobal); cFile.Write(hPtr, cbSize); GlobalUnlock(hGlobal);
-
Das geht natürlich nur, wenn die Daten nicht all zu gross sind...
-
Warum machst Du nicht einfach eine Schleife mit IStream::Read. Liest einfach immer einen Block von 4KB und schreibst diese. Solange eben IStream::Read noch was liefert.
Scherheitshalber IStream::Seek am Anfang.
IStream ist doch so etwas wie eine "Datei", zumindest hat es identische Funktionen um darauf zuzugreifen...