Einzelnen Beitrag anzeigen

endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#2

Re: Indy (IdHTTP) im Download Stream lesen

  Alt 25. Apr 2008, 17:34
hmm also ich hab nun folgendes versucht:

ersteinmal das onwork event zuweisen und
den den stream starten:
Delphi-Quellcode:
    IdHTTP.OnWork:= HTTPWork;
    IdHTTP.Get('http://81.167.88.3:8000', FS);
anschließend den stream in einen string kopieren,
was allerdings nicht richtig funktioniert, irgendwie landet da
nur müll drin. zusätzlich hab ich noch eine abbruchbedingung
die den stream nach einer weile beendet, das ganze landet
dann in einer datei. wenn ich die datei öffne wird der
string den ich im stream finden will auch gefunden.
klappt nur leider nicht im onwork event.

eine idee was ich falsch mache?

Delphi-Quellcode:
procedure TMyThreads.HTTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
var Buffer, Stream: String; N: Integer;
begin
  N:= 0;
  N:= IdHTTP.Response.ContentStream.Size;
  SetLength(Buffer, N);
  IdHTTP.Response.ContentStream.Read(Buffer[1], N);
  Stream:= copy(Buffer, 1, MaxInt);
  if SmartPos('StreamTitle=', Stream, False, 1, True) > 0 then
    IdHTTP.Disconnect;
  if AWorkCount >= 200*1024 then
    IdHTTP.Disconnect;
end;
SmartPos ist übrigens nur eine schnellere variante
der pos() methode, an der liegts nicht
  Mit Zitat antworten Zitat