Форум: "Сети";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Вниззакачка файла Найти похожие ветки
← →
anton773 © (2006-07-09 12:31) [0]Снова здравствуйте! пытаюсь закачать файл с помощью wininet: ...
Hinet:= InternetOpen("Mozilla",PRE_CONFIG_INTERNET_ACCESS,nil,nil,0);
Соединение устанавливается но закачка не начинается. PS fs это filestream
Header:= "Accept:*/*";
HUrl:= InternetOpenUrl(Hinet,pchar(Edit1.Text),pchar(Header),StrLen(pchar(Header)),0,0) ;
if RestartPos > 0 then InternetSetFilePointer(HUrl,RestartPos,nil,0,0);
InternetQueryDataAvailable(HUrl,Fsize,0,0);
while (Readlen <> 0)and (stop= false) do
begin
InternetReadFile(hurl,@fbuff,SizeOf(fbuff),Readlen);
fs.WriteBuffer(fbuff,Readlen); Application.ProcessMessages; ...
← →
Ketmar © (2006-07-09 12:42) [1]а OpenURL точно отрабатывает? не вредно бы и проверить, что оно там вернуло. а вдруг вовсе 0?
← →
anton773 © (2006-07-09 13:18) [2]
> а OpenURL точно отрабатывает?
ставлю брейкпонт на InternetReadFile значение Hurl= $CC000C ниже привожу полный код процедуры:procedureTForm2.BitBtn1Click(Sender: TObject);
var
Hinet,HUrl: HINTERNET;
Fsize,Readlen,RestartPos: DWORD;
fbuff: array[1..1024]of Byte;
FS: TFileStream;
Header: string;
fMode: Word;
begin
RestartPos:= 0;
Fsize:= 0;
BitBtn1.Enabled:= false;
BitBtn2.Enabled:=true;
if FileExists(Edit2.Text) then
fMode:= fmOpenReadWrite else
fMode:= fmCreate;
FS:= TFileStream.Create(Edit2.Text,fMode);
FS.Seek(FS.Size,soFromBeginning);
Hinet:= InternetOpen("Mozilla",PRE_CONFIG_INTERNET_ACCESS,nil,nil,0);
Header:= "Accept:*/*";
HUrl:= InternetOpenUrl(Hinet,pchar(Edit1.Text),pchar(Header),StrLen(pchar(Header)),0,0) ;
if RestartPos > 0 then InternetSetFilePointer(HUrl,RestartPos,nil,0,0);
InternetQueryDataAvailable(HUrl,Fsize,0,0);
while (Readlen <> 0)and (stop= false) do
begin
InternetReadFile(hurl,@fbuff,SizeOf(fbuff),Readlen);
fs.WriteBuffer(fbuff,Readlen);
Application.ProcessMessages;
end;
stop:= false;
InternetCloseHandle(HUrl);
InternetCloseHandle(Hinet);
fs.Free;
end;
← →
Ketmar © (2006-07-09 13:30) [3]что-то мне подозрительно всё это. особенно значение HUrl. к сожалению, проверить точно я не в состоянии. %-)
← →
anton773 © (2006-07-09 13:43) [4]
> подозрительно всё это
а каким должо быть значение Hurl
← →
Ketmar © (2006-07-09 14:16) [5]дык говорю же -- не знаю. щаз накидаю примерчик, проверю %-)
← →
Ketmar © (2006-07-09 14:27) [6]от это у меня отработало "на ура".
возвращаемые значения, как оказалось, тут пофигу -- главное, чтобы были не nil. %-)
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, Classes, WinInet;
var
ih, uh: HINTERNET;
hdr: string;
fs: TFileStream;
buf: packed array [0..1023] of Byte;
rd: LongWord;
begin
ih := InternetOpen("Mozilla", PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0);
hdr := "Accept: */*";
uh := InternetOpenUrl(ih,
"http://delphimaster.net/view/6-1152433865/",
PChar(hdr), Length(hdr), 0, 0);
fs := TFileStream.Create("$.$", fmCreate);
repeat
if not InternetReadFile(uh, @buf[0], SizeOf(buf), rd) then break;
if rd = 0 then break;
fs.WriteBuffer(buf[0], rd);
Write(".");
until false;
WriteLn;
fs.Free();
InternetCloseHandle(uh);
InternetCloseHandle(ih);
end.
← →
anton773 © (2006-07-09 15:41) [7]Огромное приогромное спасибо!Работает!!!!
← →
Ketmar © (2006-07-10 00:47) [8]добавлю, что все возвращаемые значения надо проверять на nil. я этого не делал по прчине лени, однако сие есть неверно. %-)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.05 c