![]() |
FileStream / MemoryStream
Hallo Leute,
Erstmal Ich arbeite mit Indy version 10. Ich habe es mittels untengenannten Code geschafft Segmente von einer Binairen Datei zu downloaden und zu dekodieren nach der Orginal Datei. Zitat:
Delphi-Quellcode:
Die verschiedenen Segmente werden erst auf der HD gespeichert und dan dekodiert nach der Orginal Datei.
for H := 0 to sm.Count - 1 do
try MyTestFile :='c:\Temp\nzbtemp\test' + IntToStr(H) + '.txt'; idNNTP1.GetBody(sm.Strings[H], idMessage1); finally for J := 0 to IdMessage1.MessageParts.Count - 1 do begin ------------------------- Ersatz durch FileStream / MemoryStream ----------------------------- TIdAttachment(IdMessage1.MessageParts.Items[J]).SaveToFile(MyTestFile); yDecoder1.InputFileList.Add('c:\Temp\nzbtemp\test' + IntToStr(H) + '.txt'); //DeleteFile('c:\Temp\nzbtemp\test' + IntToStr(H) + '.txt'); --------------------------------------------------------------------------------- end; end; // disconnect try IdNNTP1.Disconnect; except end; Memo1.Lines.Add('end.'); yDecoder1.OutputPath := 'c:\Temp\nzbtemp\'; yDecoder1.Active := True; Ich wollte dies mittels eines Streams ersetzen sodass nicht erst alle Segmente auf der HD gespeichert werden, Ich weiss der yDecoder kann auch SaveToStream und idMessage1 kann auch SaveToStream. Ist dies moeglich? Kann jemand mich weiterhelfen? Besten Dank im voraus. Gruss Lucius. |
Re: FileStream / MemoryStream
Guten Morgen Lucius,
du kannst einfach vor der Schleife einen MemoryStream erzeugen, in der Schleife alle Segmente dort hinein schreiben (SaveToStream) und nach der Schleife den MemoryStream dekodieren und anschließend in eine Datei wegschreiben (FileStream.CopyFrom(MemoryStream)). Das alles ist recht einfach, aber du wirst eventuell Probleme beim Dekodieren bekommen. In den NZB-Beispielen, die ich gesehen habe, sind die Segmente nicht unbedingt in der Reihenfolge aufgeführt, die du für ein erfolgreiches Dekodieren brauchst. Jedes Segment trägt aber eine laufende Nummer als Attribut und nach diesem Attributwert musst du die Segmente zuerst ordnen, damit die zu dekodierende Binärdatei korrekt zusammengesetzt wird. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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-2025 by Thomas Breitkreuz