🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
2 messages
2 total messages Started by Terrmit Sun, 30 Dec 2007 23:01
[Lazarus] Jak zacząć pracę z LibCurl?
#92353
Author: Terrmit
Date: Sun, 30 Dec 2007 23:01
17 lines
1573 bytes
Witam,

Chciałem spróbować przerobić jeden ze swoich programów,
aby zamiast Indy użyć w nim biblioteki LibCurl. Jednak
mimo, że cały dzień siedziałem dzisiaj przy tym, to
niewiele udało mi się zrobić. Wszystkie przykłady w necie
są dla C++, a dokumentacja wyłącznie po angielsku (tu niestety
mam problem ze zrozumieniem niektórych rzeczy). Właśnie
drukuję sobie dokumentację, żeby na spokojnie jeszcze raz
ją przestudiować, ale mam prośbę.
Jeśli ktoś pracował już z LibCurl, czy mógłbym prosić
o kawałek kodu w Pascalu, który pobrałby dowolną stronkę
i wrzucił jej kod źródłowy do memo?
Bardzo proszę, bo najtrudniej jest zacząć. Gdybym mógł
przejrzeć taki kod, to potem z pewnością już by poszło.

Sławek
Re: [Lazarus] Jak zacząć pracę z LibCurl?
#92354
Author: Terrmit
Date: Mon, 31 Dec 2007 10:57
38 lines
2060 bytes
Znalazłem procedurkę, która powinna zapisać stronę html do pliku:

w uses dodałem: LibCurl, unixtype

procedure TForm1.btPobierzClick(Sender: TObject);
var hCurl: pCurl;
     f : TFileStream;
     URL : Pchar = 'http://www.freepascal.org/';
function DoWrite(Ptr: Pointer; Size: size_t; nmemb: size_t; Data: 
Pointer): size_t; cdecl;
begin
   Result:=TStream(Data).Write(Ptr^,Size*nmemb); //błąd
end;

begin
   f:=TFileStream.Create('fpc.html',fmCreate);
   try
     hCurl:= curl_easy_init;
     if Assigned(hCurl) then begin
       curl_easy_setopt(hCurl,CURLOPT_VERBOSE, [True]);
       curl_easy_setopt(hCurl,CURLOPT_URL,[URL]);
       curl_easy_setopt(hCurl,CURLOPT_WRITEFUNCTION,[@DoWrite]);
       curl_easy_setopt(hCurl,CURLOPT_WRITEDATA,[Pointer(f)]);
       curl_easy_perform(hCurl);
       curl_easy_cleanup(hCurl);
     end;
   finally
     f.Free;
   end;
   memo1.Lines.LoadFromFile('fpc.html');
end;

Niestety, plik fpc.html się tworzy, ale nic się do niego nie
zapisuje. Do tego wywala mi błąd, bo Size i nmemb zawierają
chyba jakieś kosmiczne wartości. Nie chwytam, jak to ma działać :/
Pomocy!!!

Sławek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads