Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Komprimierten TMemorystream über Internet versenden

  Alt 27. Jan 2004, 18:03
Ich vermute mal das du auf den häufigsten "Anfänger"-fehler reingefallen bist.

Nachdem du den Inhalt des TMemoryStream gepackt hast befinden sich dessen Positions-Zeiger = Datei-Zeiger am Ende des Streams. Also MemoryStream.Position == MemoryStream.Size. Bevor du nun diesen Stream an Indy übergibts MUSST du mit MemoryStream.Position := 0; diesen Zeiger auf den Anfang im Stream zurücksetzen. Alle Streamorientierten API's sollten immer ausgehend von der aktuellen Position im Stream bis maximal zum Ende des Streames die Daten weiterverarbeiten. D.h. bei der Benutzung von Streams ist der Programmierer selber für die richtige Positionierung des Dateizeigers verantwortlich !

Gruß Hagen
  Mit Zitat antworten Zitat