Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2014, 18:39   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Загрузка данных из Инета

Всем доброго времени суток.

Ситуация такая: при скачивании файла из инета при помощи функции InternetReadFile, InternetReadFile не считывает файл из инета, а обращается ко "временным файлам Интернета".

Каким образом можно "отучить" InternetReadFile обращаться к кешу ?

Код:
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
  Application.ProcessMessages;
   if u=true then
     begin
     CloseFile(f);
     DeleteFile("new.ini");
     DeleteFile("new.rar");
     Clipboard.Clear;
     Result:=False;
     exit;
     end;

   InternetReadFile(hURL, @Buffer,
                    SizeOf(Buffer), BufferLen);
  BlockWrite(f, Buffer, BufferLen);
  until BufferLen = 0;
  CloseFile(f);
  Clipboard.Clear;
  Result:=True;
 finally
  InternetCloseHandle(hURL)
 end
finally
 InternetCloseHandle(hSession)
end
end;
-Jack- вне форума Ответить с цитированием
Старый 05.02.2014, 19:42   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Как вариант, использовать инди/синапс. Там таких проблем не возникает. Не совсем понимаю, к чему такая экзотическая загрузка.
doktor255 вне форума Ответить с цитированием
Старый 05.02.2014, 20:23   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

"Экзотическая" загрузка нужна для того, чтобы в неё добавить код индикатора загрузки файла
-Jack- вне форума Ответить с цитированием
Старый 05.02.2014, 21:01   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вы наверное будете в шоковом состоянии, но в Indy/Synapse довольно просто добавить этот индикатор.
Человек_Борща вне форума Ответить с цитированием
Старый 05.02.2014, 21:17   #5
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Ну как сказать что просто... Ведь придётся крутить поток, а там свои подводные камни. Но однозначно это делается.
doktor255 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка данных из XML Artesik C++ Builder 2 06.07.2012 08:11
TreeView-загрузка данных r1ga WPF, UWP, WinRT, XAML 2 09.04.2012 21:08
загрузка файла из инета HoRRoR [CSM] Работа с сетью в Delphi 6 09.06.2009 18:47
загрузка с инета StartMis Работа с сетью в Delphi 2 09.10.2008 14:33
Загрузка данных AlexMori Общие вопросы Delphi 2 15.11.2007 08:12