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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2009, 07:28   #1
jocry
Пользователь
 
Аватар для jocry
 
Регистрация: 05.10.2008
Сообщений: 49
Стрелка Не в файл, а в переменную

Здравствуйте, есть функция для скачивания файлов основанная на WinApi. Минус этой функции она записывает полученные данные в файл, а мне необходимо вписать их в переменную. Пытался искать ответ в поисковиках, да и на этом сайте, к сожалению не нашёл.

Код:
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;
jocry вне форума Ответить с цитированием
Старый 03.03.2009, 07:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а мне необходимо вписать их в переменную
Дык а Buffer это что?

Ну еси уж всетки хош в Стринг перекинуть то можно так:
Код:
setlength(s,BufferLen);
 move(Buffer,s[1],BufferLen);
Здесь s:String
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2009, 11:35   #3
jocry
Пользователь
 
Аватар для jocry
 
Регистрация: 05.10.2008
Сообщений: 49
По умолчанию

Я заменил эту сточку BlockWrite(f, Buffer, BufferLen) на твои две и сделал чтоб функция выводила в результате S, но s всегда равна нечему.
jocry вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить переменную? molodoyy Общие вопросы C/C++ 5 21.01.2009 04:34
взять переменную из dll Roof Общие вопросы Delphi 15 27.08.2008 16:40
где описать переменную Manitu Помощь студентам 2 14.05.2008 18:23
Добавить переменную в $_POST jziiiiiii PHP 4 23.02.2008 13:56
передать переменную ar4i Общие вопросы Delphi 10 04.12.2006 14:30