![]() |
Komprimierten TMemorystream über Internet versenden
Hi Leute,
vielleicht ist meine Frage ein wenig noobig aber ich weiss net mehr weiter. Ich hab mir schon die verschiedensten Threads zum Dateiversand über Internet durchgelesen, da da ja auch Streams versendet werden. Mein Problem ist, dass dort meistens FileStreams verwendet werden und wenn ich das Beispiel auf einen TMemorystream ändern will funktioniert es nicht. Ich muss unbedingt einen TMemoryStream versenden, der vorher noch komprimiert wird. Die Prozeduren für die Komprimierung \ Dekomprimierung habe ich schon von ![]() |
Re: Komprimierten TMemorystream über Internet versenden
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 |
Re: Komprimierten TMemorystream über Internet versenden
cool danke werds gleich mal ausprobieren!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz