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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 21:47   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию как сохранить файл

Как можно сохранить архив или любой другой файл из ресурса???

TFILE RCDATA C:\1.rar


файл ресурса в архиве
Вложения
Тип файла: rar 1.rar (1.10 Мб, 18 просмотров)
cargo29 вне форума Ответить с цитированием
Старый 24.03.2011, 06:46   #2
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Цитата:
Как можно сохранить архив или любой другой файл из ресурса???
как-то так:
Код:
procedure TForm1.ExtractResourse(const AResName, ANewName: string);
var
  rsDrivers: TResourceStream;
begin
  rsDrivers:= TResourceStream.Create(HInstance, AResName, RT_RCData);
  rsDrivers.SaveToFile(ANewName);
  rsDrivers.Free;
end; 

procedure TForm1.bbOklClick(Sender: TObject);
begin
  ExtractResourse('TestResource', 'C:\TestFile.exe');
end;
end;
принимаю благодарности в письменном виде( весы слева)...

Последний раз редактировалось MaxNik2009; 24.03.2011 в 07:52.
MaxNik2009 вне форума Ответить с цитированием
Старый 24.03.2011, 08:18   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от MaxNik2009 Посмотреть сообщение
как-то так:
Код:
procedure TForm1.ExtractResourse(const AResName, ANewName: string);
var
  rsDrivers: TResourceStream;
begin
  rsDrivers:= TResourceStream.Create(HInstance, AResName, RT_RCData);
  rsDrivers.SaveToFile(ANewName);
  rsDrivers.Free;
end; 

procedure TForm1.bbOklClick(Sender: TObject);
begin
  ExtractResourse('TestResource', 'C:\TestFile.exe');
end;
end;
можешь посянить вот эту строчку я разобрался но не понимаю что пишу

rsDrivers:= TResourceStream.Create(HInstance, AResName, RT_RCData);
AResName - это название в файле ревурса
RT_RCData - это я понимаю тип данных ресурса
HInstance а это что???
TResourceStream
cargo29 вне форума Ответить с цитированием
Старый 24.03.2011, 09:02   #4
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

HInstance - это handle модуля, из ресурсов которого будет извлекаться файл.
в нашем случае файл извлекается из ресурсов нашей программы.
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 24.03.2011, 11:13   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от MaxNik2009 Посмотреть сообщение
HInstance - это handle модуля, из ресурсов которого будет извлекаться файл.
в нашем случае файл извлекается из ресурсов нашей программы.
а так вообще таким способом почти все сохранять???
cargo29 вне форума Ответить с цитированием
Старый 24.03.2011, 11:24   #6
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

если извлекаешь файлы из своей программы, то везде будет HInstance. А если например из ресурсов Dll извлекаешь то примерно так:

Код:
var
  hLib: Handle;
  rsDrivers: TResourceStream;
begin
  hLib:= LoadLibrary('MyDll.dll');
  rsDrivers:= TResourceStream.Create(hLib, 'testResource', RT_RCData);
  rsDrivers.SaveToFile('C:\Test.txt');
  rsDrivers.Free;
  FreeLibrary(hLib);
end;
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 24.03.2011, 11:39   #7
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от MaxNik2009 Посмотреть сообщение
если извлекаешь файлы из своей программы, то везде будет HInstance. А если например из ресурсов Dll извлекаешь то примерно так:

Код:
var
  hLib: Handle;
  rsDrivers: TResourceStream;
begin
  hLib:= LoadLibrary('MyDll.dll');
  rsDrivers:= TResourceStream.Create(hLib, 'testResource', RT_RCData);
  rsDrivers.SaveToFile('C:\Test.txt');
  rsDrivers.Free;
  FreeLibrary(hLib);
end;
ага понял то есть когда она в самой проге русурс то HInstance показываем что она в ней, а если из библиотеки то подгружаем библиотеку... понял спасибо большое )))
cargo29 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как image сохранить в файл ? juan666777 Мультимедиа в Delphi 11 13.12.2014 09:51
как сохранить из memo в файл? RAVAL)) Общие вопросы Delphi 8 15.01.2013 18:09
DBRichEdit как сохранить в файл? Mara88 Помощь студентам 5 01.06.2010 10:50
как из edit сохранить в файл Betty Общие вопросы Delphi 5 29.06.2009 08:09
как сохранить строчки в TXT файл Ярослав Помощь студентам 2 17.05.2008 18:43