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?
Author: Terrmit
Date: Sun, 30 Dec 2007 23:01
Date: Sun, 30 Dec 2007 23:01
17 lines
1573 bytes
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?
Author: Terrmit
Date: Mon, 31 Dec 2007 10:57
Date: Mon, 31 Dec 2007 10:57
38 lines
2060 bytes
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