![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Всем доброе время суток!
Меня посетила идея создания одной программы, но столкнулся с трудностями реализации, нуждаюсь в помощь знатоков ![]() Допустим существует интернет страничка, на ней есть какое-то число. Как можно прочитать это число, и можно ли это сделать не загружая страницу целиком? Заранее спасибо всем откликнувшимся ![]() |
#2
|
||||
|
||||
![]() тебе поможет indyclient -> idhttp.get , но он будет грузить всю страницу
Последний раз редактировалось Admin, Сегодня в 10:32. |
#3
|
||||
|
||||
![]() Код:
unit Unit1; interface uses StrUtils, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ScktComp, StdCtrls; type TForm1 = class(TForm) ClientSocket1: TClientSocket; Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var savetickcount: Cardinal; begin // будем использовать блокируемый сокет ClientSocket1.ClientType:=ctBlocking; ClientSocket1.Host:='ya.ru'; ClientSocket1.Port:=80; ClientSocket1.Open; ClientSocket1.Socket.SendText('GET / HTTP/1.1'#13#10'Host: ya.ru'#13#10'User-Agent: Mozilla/4.0'#13#10#13#10); savetickcount:=GetTickCount; // ждем не более 1 минуты, т.е. 60000 мс while (GetTickCount-savetickcount<60000) do begin // ReceiveLength не блокируемый метод if ClientSocket1.Socket.ReceiveLength>0 then begin Memo1.Text:=Memo1.Text+ClientSocket1.Socket.ReceiveText; // как только встретили конец страницы "</html>" то выходим if AnsiEndsStr('</html>', Memo1.Text) then Break; end; end; ClientSocket1.Close; end; end. Код:
// как только встретили конец страницы "</html>" то выходим if AnsiEndsStr('</html>', Memo1.Text) then Break; Последний раз редактировалось NumLock, 04.05.2012 в 10:45. |