Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Как получить информацию из файла с инета   Найти похожие ветки 

 
Виталий09   (2005-10-08 17:40) [0]

Здравствуйте!

Уважаемые мастера, подскажите пожалуйста как можно (на программном уровне) скачать
текстовый фаил с моего интернета-сайта и открыть его в memo

Заранее, спасибо.


 
Zeqfreed ©   (2005-10-08 19:51) [1]

Виталий09   (08.10.05 17:40)
Простейший вариант:


uses WinInet;

function InetGetPage(const Agent, Server, Path : String) : String;
var
hInet, hConnect, hReq : hInternet;
buf : array[1..1024] of Char;
read : Cardinal;
ReadFlag, ReqSent : boolean;

err : boolean;
errcode : Integer;
begin
err := false;

hInet := InternetOpen(PChar(Agent), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
if hInet <> nil then begin
 hConnect := InternetConnect(hInet, PChar(Server), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
 if hConnect <> nil then begin
   hReq := HttpOpenRequest(hConnect, "GET", PChar(Path), HTTP_VERSION, nil, 0, 0, 0);
   if hReq <> nil then begin
    ReqSent := HttpSendRequest(hReq, nil, 0, nil, 0);
    if ReqSent then begin
     repeat
      ReadFlag := InternetReadFile(hReq, @buf, SizeOf(buf), read);
      Result := Result + Copy(buf, 1, read);
     until (not ReadFlag) or (read = 0);
    end else begin
     err := true;
     errcode := GetLastError();
   end;
  end else begin
   err := true;
   errcode := GetLastError();
  end;
 end else begin
  err := true;
  errcode := GetLastError();
 end;
end else begin
 err := true;
 errcode := GetLastError();
end;

if err then begin
 MessageBox(0, PChar("Error #" + IntToStr(errcode) + " has been occured"), "Connection failed", MB_OK or MB_ICONWARNING);
end;

InternetCloseHandle(hReq);
InternetCloseHandle(hConnect);
InternetCloseHandle(hInet);
end;


Пример использования:
Memo1.Text := InetGetPage("123", "www.delphimaster.ru", "http://delphimaster.net/view/2-1128778852/");



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
1-1129025202
Alex_Mel
2005-10-11 14:06
2005.10.30
Как корректно создать несколько экземпляров формы...


2-1128819510
quadronik
2005-10-09 04:58
2005.10.30
Пример из дельфийского ХЕЛПа..не работает


14-1128586993
BURN
2005-10-06 12:23
2005.10.30
Пятнашки


3-1126689889
dpv
2005-09-14 13:24
2005.10.30
Огромная база, при Conect уходит много времени.


4-1124984548
psa247
2005-08-25 19:42
2005.10.30
Зная ProcessID - узнать, есть ли у него форма и получить ее hwnd