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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Viktor Zull
Сообщения: 117
Зарегистрирован: 10 ноя 2005, 02:00

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

Можно ли добавить этот архив в exe проги, например как ресурс. А в нужный момент извлечь из него файлы.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

смысл?
Изображение
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

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

Подробно о формате RES-айлов а также о функциях с помощью которых
ресурс извлевается и записывается на диск читайте в справке по WinAPI.
Там по ресурсам есть целый отдельный специальный раздел.
смысл?
1) Один EXE-шник сам себе дистрибутив. Т.е. самодостаточный файл. При установке программы на другую машину никто не забудет перенести все нужные файлы
2) Чайник не сможет подсунуть другой файл (нарочно или по ошибке) (так как архив будет всегда извлекаться из ресурса перед распаковкой), а также посмотреть его содержимое.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

имхо, изврат ;) НЛ
Изображение
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Согласен.
Однако зависит от цели.
У меня, например, есть компонент (мой собственный) он добавляет в систему растровый шрифт.
Шрифт распаковывается из ресурса и на период работы приложения регистрирует его в системе. Шрифт кроме моего приложения больше никому не нужен. Он псевдографичекий.
Viktor Zull
Сообщения: 117
Зарегистрирован: 10 ноя 2005, 02:00

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

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

Или можно не вытаскивая файл сослаться на ресурс из WinExec?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Этот вопрос уже неоднократно поднимался.
НЕЛЬЗЯ не вытаскивая. Надо сохранить ресурс в файл.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Про сохранение см forum/viewtopic.php?t=1413

Ну и справка по Win32API конечно же всегда рулит!
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

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

Как сохранить ресурс в файл?
Ответить