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

Вниз

закачка файла   Найти похожие ветки 

 
anton773 ©   (2006-07-09 12:31) [0]

Снова здравствуйте! пытаюсь закачать файл с помощью wininet:                                                                                                      ...                                                                   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;                                                                              ...
Соединение устанавливается но закачка не начинается. PS fs это filestream


 
Ketmar ©   (2006-07-09 12:42) [1]

а OpenURL точно отрабатывает? не вредно бы и проверить, что оно там вернуло. а вдруг вовсе 0?


 
anton773 ©   (2006-07-09 13:18) [2]


> а OpenURL точно отрабатывает?

ставлю брейкпонт на InternetReadFile значение Hurl= $CC000C ниже привожу полный код процедуры:procedure TForm2.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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
2-1163174164
Fostr
2006-11-10 18:56
2006.11.26
Syntax error in query. Incomplete query clause.


1-1160634052
gdaujk
2006-10-12 10:20
2006.11.26
Вариантный массив


4-1152920860
Ayvan
2006-07-15 03:47
2006.11.26
enabled or not?


11-1139343783
dem111
2006-02-07 23:23
2006.11.26
objects.dcu


2-1163052629
Choco
2006-11-09 09:10
2006.11.26
Перемещать форму за Panel