Kod strony do StringList'a

0

Witam. Mam pytanie. Czy znacie jakiś komponent, który pobierze mi źródło strony internetowej do StringLista, oprócz Synapse i Indy? Dotychczas używałem Synapse, jednakże dziwnie się to pobierało. Dopóki program nie wykonał kodu "HttpGetText", to nie dało się nic innego zrobić w programie, nawet kliknąć buttona. Nie jest to moze zbyt uciązliwe u osób które mają szybkiego neta, ale przy powolnym moze sie wydawać ze program dostał zwiecha.

Pozdrawiam

0

Ja polecam Tobie jednak zostać przy Synapse. Pobierać kod do Streama, na przykład tak jak poniżej,
a następnie załadować do StringList przez LoadFromStream. Jeśli program się zamraża, to skorzystaj
z wątków które masz opisane na: Wątki i powinno być ok.

//...
const
  Opera_UserAgent = 'Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.10';

procedure DownloadToStream(const URL : string; const SomeStream : TStream);
const
  Location_Prefix = 'Location:' + #32;
var
  SynHttp : THttpSend;
  I, Position : integer;
  Str, DirectLink : string;
begin
  SynHttp := THttpSend.Create;
  try
    SynHttp.UserAgent := Opera_UserAgent;
    SynHttp.HTTPMethod('GET', Url);
    case SynHttp.ResultCode of
      301, 302 :
        begin
          for I := 0 to SynHttp.Headers.Count - 1 do
          begin
            Str := SynHttp.Headers[I];
            Position := Pos(Location_Prefix, Str);
            if Position > 0 then
            begin
              DirectLink := Copy(Str, Position + Length(Location_Prefix), MaxInt);
              Break;
            end;
          end;
          DownloadToStream(DirectLink, SomeStream);
        end;
    else
      SynHttp.Document.SaveToStream(SomeStream);
      SomeStream.Position := 0;
    end;
  finally
    SynHttp.Free;
  end;
end;
0

Ok. Dzięki bardzo :). Pokombinuję z tymi wątkami :)

0

Możesz też zainteresować się ICS (www.overbyte.be) i pobierać asynchronicznie dane, a na koniec dostaniesz event, że pobieranie ukończone. Całkiem przyjemne stadko komponentów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1