Другие языки:

English

Поддержка FreeArc+InnoSetup

FreeArc стал очень популярен при создании инсталяторов многогигабайтных программ, поскольку это единственный архиватор, поддерживающий словари до 2 гб, что позволяет добиться большей степени сжатия, чем в 7-zip или любых других архиваторах. Чтобы помочь создателям инсталяторов, мы разработали этот пакет.

Он включает unarc.dll для распаковки архивов FreeArc в инсталяторах, созданных с помощью InnoSetup, и два примера скриптов инсталятора, использующих эту dll - простой и с расширенными возможностями. В этом форуме можно получить консультации по использованию скрипта.

Если вы используете архивы FreeArc в своих инсталяторах - пожалуйста сделайте в них ссылку на этот сайт для увеличения популярности FreeArc.


Демонстрационные скрипты


Альтернативные библиотеки и утилиты


Версии скрипта

Версия 4.0 ext от Shegorat, 15-10-2010
  • Добавлена поддержка зашифрованных архивов
  • Добавлено более информативное описание ошибки
  • Добавлен новый язык - Немецкий
Версия 2.6 ext от Shegorat, 4-07-2010
  • Исправлена ошибка с зависанием инсталятора
  • Исправлена функция AnsiToUtf8
  • Исправлены некоторые ошибки
  • Доработана функция обработки строки Archives
Версия 2.5 ext от Shegorat, 15-05-2010
  • Сделана проверка, распакован ли уже архив (архивы больше не распаковываются дважды, трижды и т.д)
  • Исправлены некоторые ошибки
  • Изменена строка состояния архивов
  • Добавлен скрипт с ISPrecomp
Версия 2.4 ext от Shegorat, 20-04-2010
  • Исправлена распаковка архивов, если архивы разделили на большее кол-во дисков, чем расчетное (прим. DVD9 => 2xDVD5), при этом общий прогресс пересчитывается в зависимости от количества дисков
  • Исправлен общий прогрессбар, теперь он не обнуляется при вставке нового диска
  • Исправлено оставшееся время, теперь не обнуляется при распаковке
  • Доработана система подсчета кол-ва распакованных файлов, теперь не обнуляется при вставке нового диска
  • Общий объем распакованных файлов теперь не обнуляется при вставке нового диска
  • Мелкие исправления
Версия 2.3 ext от Shegorat, 28-01-2010
  • Исправлена распаковка, если архивы с нескольких дисков поместили на один
  • Исправил распаковку с компонентами
Версия 2.2 ext от Shegorat, 26-01-2010
  • Добавлен запрос 2го и последущих дисков
  • Добавлена распаковка в разные папки
  • Архивы добавляются через #define Archives, имена архивов могут быть любыми
  • Скрипт сделан на основе FreeArc_Example-Ext v.3.5.iss

Версия 3.5, 21-12-2009
  • поддержка опций -ap/-ld/-cfg в FreeArcExtract()
  • ускорена распаковка при большом количестве wav-файлов (метод TTA)
  • можно передавать NULL в качестве первого параметра (callback) в FreeArcExtract()
  • исправлена ошибка: обрабатывались опции после '--'
Версия 3.4, 18-11-2009
  • улучшение в unarc.dll - не создаёт временные файлы при распаковке rep:1gb и фрагментированной памяти
  • поддержка метода 4x4
Версия 3.3 ext от Victor_Dobrov, 13-09-2009
  • arc.ini ищется в c:\
  • купирована ошибка индикатора прогресса при использовании внешних распаковщиков
  • пофиксена потеря количества извлечённых/распакованных файлов
Версия 3.3 от Bulat Ziganshin, 13-09-2009
  • ускорение распаковки на 10%
  • FreeArcExtract() поддерживает опцию '-wPATH' для задания каталога для временных файлов
  • при прерывании распаковки стирает временные файлы
  • исправлена ошибка в unarc.dll - вылетала при распаковке с использованием временных файлов
Версия 3.2 ext от Victor_Dobrov, 31-07-2009
  • очень простой способ добавления архивов
  • распаковка архивов в разные папки
  • распаковка идёт с учётом выбранных компонентов/задач
  • включение в инсталлятор папки с precomp-утилитами
  • фоновая графика и прозрачные строки статуса и файлов (мечта репакеров!)
  • miniFAQ и многое другое...
Версия 3.2 от Bulat Ziganshin, 31-07-2009
  • исправлена unarc.dll - теперь она не вылетает на сбойных архивах
Версия 3.1 от Bulat Ziganshin, 29-07-2009
  • более плавный индикатор прогресса (данные из LZMA пишутся кусками по 8 мб вместо dictsize)
  • больше не грузятся всякие левые facompress.dll из PATH
Версия 3.0 от Bulat Ziganshin, 29-07-2009
  • функция ArchiveOrigSize возвращает объём данных в архиве
  • наименования колбэков изменены на read и write (было progress и written)
Версия 2.2 от Victor_Dobrov, 12-07-2009
  • заменил в PeekMessage 0 на WizardForm.Handle, иначе были ошибки при действиях с окном
  • добавил проверку на деинсталлятор при откате из-за ошибок FreeArc
  • действует стандартная кнопка отмены инсталлятора (и опрос клавиши Escape)
  • не требуется прописывать в скрипт общий размер распакованных файлов (убран totalsize)
  • вывод сведений изменён на классический - имена архивов отображаются в WizardForm.FileNameLabel
  • кнопка инсталлятора в таскбаре показывает процент выполнения текущего этапа и время до его завершения
  • расширенная статистика выдаётся как при извлечении файлов инстяллятором, так и при распаковке архивов
  • при обработке более одного архива показываются отдельный прогрессбар и сведения о текущем архиве
  • на этапе извлечения файлов идёт только подсчёт числа файлов и отсчёт оставшегося времени
  • на этапе распаковки заново начинаются подсчёт файлов, распакованных объёма и оставшегося времени
  • при ошибке показывается имя архива (сделано для Corona Skin, где журнал установки перехватывает все сообщения)
  • в функции FreeArcCallback оставлен минимум кода, информация обрабатывается отдельно, т.к. нужна и для других этапов
  • исправление для Unicode-версии: можно использовать русские символы для названий и содержимого архивов
  • (!) при перезаписи совпадающих файлов счётчик распакованных данных всё равно увеличивается
  • архивы могут быть в разных папках, в этом случае они отделяются знаком | Пример: #define Archives "{app}\Data\*.tmp|{src}\Archives\*.arc"
Версия 2.1 от Bulat Ziganshin, 10-07-2009
  • В unarc.dll исправлена ошибка, чреватая потенциальными проблемами при распаковке множества архивов
Версия 2.0 от Bulat Ziganshin, 08-07-2009
  • Корректно отображает общий объём установки и сколько данных уже распаковано
  • Индикатор прогресса теперь основан на объёме распакованных и записанных на диск данных
  • Дополнительно отображается сколько осталось времени
  • FreeArcCallback вызывается не менее 100 раз в секунду, что заменяет вызов по таймеру
  • Добавлен placeholder для периодически выполняемого кода (в начале процедуры FreeArcCallback)
  • Исправлена проблема с удалением последнего распакованного файла при отмене инсталяции
  • Исправлена проблема с русскими именами/путями распаковываемых архивов
  • Кнопка 'Отменить распаковку' масштабируется в зависимости от размеров формы
  • Исправлено вычисление оставшегося времени (теперь отсчёт начинается в момент начала распаковки)
  • За пределами процесса распаковки все лишние надписи убираются с экрана
Версия 1.2 от CTACKo & SotM'а. 01-07-2009
  • Правильно создаются папки, если в пути установки встречаются русские буквы
  • При компиляции определяется использование PAnsiChar/PChar. Можно использовать как обычную так и UNICODE версию с установленным препроцессором.
  • Русские имена файлов теперь правильно отображаются.
  • При нажатии "отмены" при распаковке теперь появляется запрос на подтверждение отмены.
Версия 1.1 от Victor_Dobrov, 15-06-2009, предыдущая версия
  • оптимизация и локализация скрипта, более подробная строка статуса, общий прогресс-бар, при неудачной распаковке выполняется откат (деинсталляция) и показывается текст ошибки.
Версия 1.0 от Bulat Ziganshin, 13-06-2009, предыдущая версия
  • создание библиотеки unarc.dll и скрипта распаковки freearc_example.iss.