Страница 1 из 2

Как добавить архив в программу

Добавлено: 14 дек 2005, 11:21
Viktor Zull
Есть программа которая извлекает файлы из архива rar:
WinExec('C:\Program Files\WinRAR\WinRAR.exe x C:\1\1.xxx *.* C:\1\',Windows.SW_RESTORE);

Можно ли добавить этот архив в exe проги, например как ресурс. А в нужный момент извлечь из него файлы.

Добавлено: 14 дек 2005, 12:11
Игорь Акопян
смысл?

Добавлено: 14 дек 2005, 13:25
Naeel Maqsudov
Можно.
В D5 в меню Project кажется был пункт Resources. В D6 он вроде куда-то делся...
Можно также просто в блокноте написать Res-файл и подключить к проекту
вставив директиву компилятора... э-э-э... забыл какую..... :(

Подробно о формате RES-айлов а также о функциях с помощью которых
ресурс извлевается и записывается на диск читайте в справке по WinAPI.
Там по ресурсам есть целый отдельный специальный раздел.
смысл?
1) Один EXE-шник сам себе дистрибутив. Т.е. самодостаточный файл. При установке программы на другую машину никто не забудет перенести все нужные файлы
2) Чайник не сможет подсунуть другой файл (нарочно или по ошибке) (так как архив будет всегда извлекаться из ресурса перед распаковкой), а также посмотреть его содержимое.

Добавлено: 14 дек 2005, 14:25
Игорь Акопян
имхо, изврат ;) НЛ

Добавлено: 14 дек 2005, 15:26
Naeel Maqsudov
Согласен.
Однако зависит от цели.
У меня, например, есть компонент (мой собственный) он добавляет в систему растровый шрифт.
Шрифт распаковывается из ресурса и на период работы приложения регистрирует его в системе. Шрифт кроме моего приложения больше никому не нужен. Он псевдографичекий.

Добавлено: 15 дек 2005, 11:08
Viktor Zull
Сделал файл R.rc в нем запись: MyFile RCDATA LOADONCALL A.rar
Откомпилировал его и получил R.res
В проге подключил его {$R R.res}

Как мне теперь обратиться к моему ресурсу чтобы на диске создать архив A.rar.

Или можно не вытаскивая файл сослаться на ресурс из WinExec?

Добавлено: 15 дек 2005, 14:34
Naeel Maqsudov
Этот вопрос уже неоднократно поднимался.
НЕЛЬЗЯ не вытаскивая. Надо сохранить ресурс в файл.

Добавлено: 15 дек 2005, 15:15
Naeel Maqsudov
Про сохранение см forum/viewtopic.php?t=1413

Ну и справка по Win32API конечно же всегда рулит!

Добавлено: 15 дек 2005, 17:17
AiK
НЕЛЬЗЯ не вытаскивая. Надо сохранить ресурс в файл.
Если не извращаться с RAR'ом, то можно :)
Все браузеры замечательно раззиповывают на лету страницы, заархивированные на сервере. Без предварительного сохранения.
За исключением, наверное, IE они используют zlib.

Добавлено: 15 дек 2005, 23:42
Viktor Zull
Как сохранить ресурс в файл?