ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Процент скачивания файла[delphi]
  #1  
Старый 04.02.2010, 13:24
marcos
Участник форума
Регистрация: 08.11.2009
Сообщений: 114
Провел на форуме:
201148

Репутация: -4
По умолчанию Процент скачивания файла[delphi]

Всем привет! Нашел функцию для скачивания из интернета:
Код:
function 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;
Подскажите как доработать его, чтобы он показывал процент скачивание в progressbar?
 
Ответить с цитированием

  #2  
Старый 04.02.2010, 16:57
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

вот тебе пример функции из моего модуля. Думаю разберешься, там все еть.

Код:
function TApiGetHTTP.Get(const AURL: string; AResponseContent: TStream): boolean;
const BufferSize = 1024;
var
  Buffer : array[0..BufferSize] of Byte;
  BufferLen: DWORD;
  Header : string;
  hSession, hConnect, hRequest : hInternet;
  FSize : Int64;
begin
{ Подготавливаем заголовок }
  If FUserAgent = '' Then FUserAgent := 'Delphi/7.0';
  If FAccept <> '' Then Header := Header + 'Accept: ' + FAccept + #10;
  If FAcceptEncoding <> '' Then Header := Header + 'Accept-Encoding: ' + FAcceptEncoding + #10;
  If FConnection <> '' Then Header := Header + 'Connection: ' + FConnection + #10;
  If FContentType <> '' Then Header := Header + 'Content-Type: ' + FContentType + #10;
  If FKeepAlive <> '' Then Header := Header + 'Keep-Alive: ' + FKeepAlive + #10;
  If FAcceptCharset <> '' Then Header := Header + 'Accept-Charset: ' + FAcceptCharset + #10;

  If (FRangeStart <> '') and (FRangeEnd <> '') Then
  begin
    Header := Header + 'Range: bytes=' + FRangeStart + '-' + FRangeEnd;
  end;

  // Если есть куки, то приделываем их к заголовку
  If FCookie <> '' Then Header := Header + 'Cookie: ' + FCookie;

 hSession := InternetOpen(PChar(FUserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 hConnect := InternetConnect(hSession, pchar(GetHost(AURL)), 80, nil, nil,
                             INTERNET_SERVICE_HTTP, 0, 0);

 hRequest := HttpOpenRequest(hConnect, PChar('GET'), PChar(Copy(AURL, Pos('.ru', AURL) +4, Length(AURL))), 'HTTP/1.1',
                             nil, nil, 0, 0);

 HttpSendRequest(hRequest, PChar(Header), Length(Header), nil,
                 0);

  FSize := GetUrlInfo(HTTP_QUERY_CONTENT_LENGTH, AURL);
  TriggerOnWorkBegin(FSize);

 repeat
  Result := InternetReadFile(hRequest, @Buffer,
  SizeOf(Buffer), BufferLen); 
  AResponseContent.Write(Buffer, SizeOf(Buffer));
  TriggerOnWork(AResponseContent.Position);
 until BufferLen = 0;
  InternetCloseHandle(hRequest);
  InternetCloseHandle(hSession);
  TriggerOnWorkEnd(nil);
end;
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Продажа Дедиков (Дешево) !!! stopxaker Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 113 12.05.2010 16:12
Переадресация после скачивания файла Gos PHP, PERL, MySQL, JavaScript 4 14.04.2010 12:10
Нужен Ваш совет! Продвижения магазин за процент ramb712 Обсуждение Ваших сайтов 5 04.10.2009 20:36
Как обойти защиту от скачивания не зарегистрированным пользователям на движке Ipb 2.0 D1ma Форумы 3 10.10.2005 19:19



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ