Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Webpage source u memo

[es] :: Pascal / Delphi / Kylix :: Webpage source u memo

[ Pregleda: 1414 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reikonija
Faks<lll>
Visegrad

Član broj: 213271
Poruke: 121
*.teol.net.



+4 Profil

icon Webpage source u memo10.10.2011. u 20:25 - pre 152 meseci
Znaci pokusao sam preko idhttp i get-a opcije ali cim iskoci neki bug na stranici on izbaci error pa sam citao i wininet-u i odlucio upotrebiti ovaj kod:
Code:
function DownloadFile(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 7.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  if Assigned(NetHandle) then
  begin
    UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_DONT_CACHE, 0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer, SizeOf(Buffer), 0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer, SizeOf(Buffer), 0);
        InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s', [Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;


Pa onda idem :
memo1.lines.text:=DownloadFile(link do stranice);
i to ide solidno brzo, ali kada hocu da otvorim 10 stranica npr iz listbox-a:
for i=0 to listbox1.items.count-1 do
memo1.lines.text:=DownloadFile(listbox1.items.strings);
nastaje urnebes :) , program uspori , pobeli , procesor ode nebu pod oblake , ne znam kako drugo da ucitam te stranice u memo a da mi program ne poludi .
 
Odgovor na temu

salaczr

Član broj: 160654
Poruke: 103
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Webpage source u memo11.10.2011. u 09:57 - pre 152 meseci
Probao sam tvoj primer i nisam imao osecaj da je nastao "urnebes" ;).
U svakom slucaju za ovakav problem moj izbor bi pao na Overbyte ICS biblioteku (http://www.overbyte.be/frame_index.html).

Evo ti i primer kako da je koristis:

Na neki button ili gde vec hoces
Code:

var
  i : Integer;
begin
  HttpClient.Connection     := 'Keep-Alive';
  HttpClient.RequestVer     := '1.0';

  for i := 0 to ListBox_URL.Items.Count - 1 do
    begin
      Memo_1.Lines.Add('====================================================');
      Memo_1.Lines.Add(ListBox_URL.Items[i]);
      Memo_1.Lines.Add('====================================================');
      HttpClient.URL := ListBox_URL.Items[i];
      try
        HttpClient.Get;
      except
        HttpClient.Abort;
      end;
    end;
end;


Na HttpClient OnDocBegin
Code:

  HttpClient.RcvdStream := TFileStream.Create('tempurl.html', fmCreate);


NA HttpClient OnDocEnd
Code:

var
  fStream : TFileStream;
  urlString : string;
begin
  if HttpClient.RcvdStream <> nil then
    begin
      HttpClient.RcvdStream.Free;
      HttpClient.RcvdStream := nil;
    end;

  fStream := TFileStream.Create('tempurl.html', fmOpenRead);
  if fStream.Size <> 0 then
    begin
      SetLength(urlString, fStream.Size);
      fStream.Read(urlString[1], fStream.Size);
      Memo_1.Lines.Add(urlString);
    end;
  FreeAndNil(fStream);
  DeleteFile('tempurl.html');
end;
 
Odgovor na temu

reikonija
Faks<lll>
Visegrad

Član broj: 213271
Poruke: 121
*.teol.net.



+4 Profil

icon Re: Webpage source u memo11.10.2011. u 19:16 - pre 152 meseci
hvala na odgovoru , salaczr , skinuo sam Overbyte , najnoviju verziju , samo sam morao HTTP.Client u HTTP.cli1 da preimenujem i sve sad dobro radi. Kad sam koristio wininet nism mogao prozor pomerati dok se ne ucitaju stranice , malo ga pomjerim i program zamrzne sa ovim je super i ne vuce procesora , hvala ti puno :)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Webpage source u memo

[ Pregleda: 1414 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.