soulfly
Čuven
- Učlanjen(a)
- 01.03.2002
- Poruke
- 527
- Poena
- 619
Imam sledeci kod:
uses Wininet;
Function TfDLPage.GetInetFile(const FileURL, FileName: String) : Boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result := False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(FileURL), nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result := True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
procedure TfDLPage.cmdDLFileClick(Sender: TObject);
var
FileOnNet, LocalFileName: string;
begin
FileOnNet:= 'http://website.com/index.htm'; <<----
LocalFileName:='probni.htm';
if GetInetFile(FileOnNet,LocalFileName) = True then
ShowMessage('Download uspesan.')
else
ShowMessage('Greska...');
end;
--------------------------------------------------------
Program treba da preuzme root url sajta, znaci bez npr. index.htm. Kako da izvedem da se prvo otvori taj neki url, pri tome odredi koja je prva (default) stranica i onda ona download-uje?
Gledao sam dokumentaciju za WinInet, ali ne znam sta bi trebalo, mozda neki dodatni flag u pozivu InternetOpenUrl?
U VB-u .NET to radi dosta jednostavno:
dim req as httpwebrequest = http.webrequest.create(urlzaobradu)
dim resp as httpwebresponse = req.getresponse
pageresp = resp.responseuri.tostring()
Samo kad bi svi imali framework.
(Vidim da se tabovi koji postoje u kodu ne prikazuju...)
uses Wininet;
Function TfDLPage.GetInetFile(const FileURL, FileName: String) : Boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result := False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(FileURL), nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result := True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
procedure TfDLPage.cmdDLFileClick(Sender: TObject);
var
FileOnNet, LocalFileName: string;
begin
FileOnNet:= 'http://website.com/index.htm'; <<----
LocalFileName:='probni.htm';
if GetInetFile(FileOnNet,LocalFileName) = True then
ShowMessage('Download uspesan.')
else
ShowMessage('Greska...');
end;
--------------------------------------------------------
Program treba da preuzme root url sajta, znaci bez npr. index.htm. Kako da izvedem da se prvo otvori taj neki url, pri tome odredi koja je prva (default) stranica i onda ona download-uje?
Gledao sam dokumentaciju za WinInet, ali ne znam sta bi trebalo, mozda neki dodatni flag u pozivu InternetOpenUrl?
U VB-u .NET to radi dosta jednostavno:
dim req as httpwebrequest = http.webrequest.create(urlzaobradu)
dim resp as httpwebresponse = req.getresponse
pageresp = resp.responseuri.tostring()
Samo kad bi svi imali framework.
(Vidim da se tabovi koji postoje u kodu ne prikazuju...)