1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Распаковка архива методом PZlib+Srep+Lzma

Тема в разделе "Алгоритмы сжатия", создана пользователем Ray Kazumi, 29 ноя 2016.

  1. Старожил Модератор

    Регистрация:
    11 июн 2012
    Сообщения:
    478
    Симпатии:
    194
    Пол:
    Мужской
    L-e-o-N, инсайд свой сюда выложи, полностью все файлы
     
  2. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    908
    Симпатии:
    667
    L-e-o-N у меня все работает делаю так pzlib 3 + msc +srep + lzma
     
  3. Пользователь

    Регистрация:
    1 дек 2015
    Сообщения:
    215
    Симпатии:
    71
    Пол:
    Мужской
     

    Вложения:

    • pack.rar
      Размер файла:
      1,7 МБ
      Просмотров:
      155
    • unpack.rar
      Размер файла:
      931,7 КБ
      Просмотров:
      114
  4. Старожил Модератор

    Регистрация:
    11 июн 2012
    Сообщения:
    478
    Симпатии:
    194
    Пол:
    Мужской
    L-e-o-N, юзай так:

    [External compressor:msc]
    header = 0
    packcmd = msc c -v -f -tak=9s -mp3=1 -dxt=2 -ddsraw=0 -raw=2 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp

    [External compressor:pzlib]
    header = 0
    packcmd = pZLib e -m2 -t4 -b512k - -o - <stdin> <stdout>
    unpackcmd = pZLib d -t75p - -o - <stdin> <stdout>

    MSC_Unpack.exe вообще выкинь, для распаковки нужна dll только
     
  5. Пользователь

    Регистрация:
    1 дек 2015
    Сообщения:
    215
    Симпатии:
    71
    Пол:
    Мужской
    Не помогло, и кстати проблема не только в pzlib (только что пробовал прикрутить reflate и lzma2), тоесть любой алгоритм который работает как exe-шник не работает
     
    Последнее редактирование: 14 апр 2017
  6. Старожил Модератор

    Регистрация:
    11 июн 2012
    Сообщения:
    478
    Симпатии:
    194
    Пол:
    Мужской
    L-e-o-N, ищи у себя проблему значит
     
  7. Пользователь

    Регистрация:
    1 дек 2015
    Сообщения:
    215
    Симпатии:
    71
    Пол:
    Мужской
    У меня указан рабочий каталог {app} и не прописан путь к arc.ini (его просто не видит), уже исправил
     
  8. Пользователь

    Регистрация:
    16 апр 2017
    Сообщения:
    21
    Симпатии:
    0
    Пол:
    Мужской
    Помогите, пожалуйста с простым скриптом для Inno Setup при использовании pZlib v3, метод сжатия M2 (pzlib+srep+lzma).

    Архивируется/распаковывается "вручную" без проблем.

    А в Inno Setup, либо выдаёт ошибку "заголовок архива повреждён", либо распаковка уходит в бесконечность!
    Какие файлы в архиве есть он определяет - пишет мол распаковка такого-то файла, НО процесс распаковки так и не начинается.
    Так же не работает кнопка "Отменить распаковку", приходится снимать процессы через Диспетчер задач, чтобы закрыть установщик.

    Файлы arc.ini, arc.exe, pzib.exe, добавил, в Temp они извлекаются. Файлы srep.exe, CLS-srep.dll - менял на разные версии. Не помогает, либо вообще пишет, что не может извлечь из-за неизвестного типа сжатия.

    Информацию в arc.ini - - менял, как написано в этой теме ранее, так и брал из pZib.

    Код (Text):
    [External compressor: pzlib]
    header = 0
    packcmd = pZLib e -m2 -t4 $$arcdatafile$$.tmp -o $$arcpackedfile$$.tmp
    unpackcmd = pZLib d -t4 - -o - <stdin> <stdout>
    Распаковывать пробовал и так и так:

    Код (Text):
    if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.bin'),  ExpandConstant('{app}'), '', False, '{#Password}', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY {PCFonFLY} ) then Break;

    if not ISExec(0, 0, 0, ExpandConstant('{tmp}\arc.exe'), ExpandConstant('x -o+ -cfg"{tmp}\arc.ini" -w"{app}" -hp"{#password}" -dp"{app}" "{src}\*.bin"'), ExpandConstant('{tmp}'), '...', False) then break;
    Подскажите, пожалуйста, что и как нужно делать в чём проблема? Если можно простой пример скрипта для пробы и какую версию Inno Setup и pZlib и прочих библиотек вы используете?
     
  9. Пользователь

    Регистрация:
    5 мар 2014
    Сообщения:
    382
    Симпатии:
    70
    NicTon,
    1. в arc.ini:
    Замени строчку "[External compressor: pzlib]" на эти:
    Код (Inno):
    [External compressor: pzlib]
    header = 0
    packcmd = pZLib e -m2 -t4 - -o - <stdin> <stdout>
    unpackcmd = pZLib d -t4 - -o - <stdin> <stdout>
    2. Распаковывать (через inno) так:
    Код (Inno):
    if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.bin'),  ExpandConstant('{app}'), '', False, '{#Password}', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY {PCFonFLY} ) then Break;
    3. Отмена установки:
    Код (Inno):
    1) Убивать процесс при отмены установки
    procedure CancelButtonOnClick(Sender: TObject);
    begin
      SuspendProc;
      if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
      Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
      ResumeProc;
    end;
    2) Убивать процесс при ошибке
      if (CurStep=ssInstall) and ISDoneError then
      begin
      Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
      end;
      if (CurStep=ssPostInstall) and ISDoneError then begin
        Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
      end;
    end;
    Всё это уже было написано на первой странице темы. И на сколько я знаю уже есть cls для pzlib.
     
  10. Пользователь

    Регистрация:
    18 май 2017
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Вы меня извините за дикость, но я никак не могу понять, зачем нужен pZLIB.exe, что с ним делать, и как им пользоваться, объясните пожалуйста.
     
  11. Пользователь

    Регистрация:
    18 сен 2014
    Сообщения:
    485
    Симпатии:
    72
    Пол:
    Мужской
    KEHTYXA_CAH, Как видно из названия - пзлиб нужен для декомпрессии файлов, сжатых методами ZLIB, Deflate и тд. и последующего сжатия фриарком. По скорости разжатия и восстановления он гораздо быстрее прекомпа и рифлейта.
    Как им пользоваться, можно узнать в самом exe файле
     
    Nemko нравится это.
  12. Пользователь

    Регистрация:
    18 май 2017
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Но принцип тот же как и у прекомпа?
     
  13. Пользователь

    Регистрация:
    18 сен 2014
    Сообщения:
    485
    Симпатии:
    72
    Пол:
    Мужской
    KEHTYXA_CAH, Да примерно тот же
     
  14. Старожил

    Регистрация:
    31 мар 2015
    Сообщения:
    336
    Симпатии:
    172
    Пол:
    Мужской
    Который не работает корректно ...
     
  15. Пользователь

    Регистрация:
    3 дек 2016
    Сообщения:
    102
    Симпатии:
    8
    Пол:
    Мужской
    вышел новы cls с поддержкой ползунка, может кто сможет интегрировать его в скрипт isdone final ?
    пример в архиве
     

    Вложения:

  16. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    908
    Симпатии:
    667
    Pipocooling,
     

    Вложения:

    Pipocooling нравится это.
  17. Пользователь

    Регистрация:
    3 дек 2016
    Сообщения:
    102
    Симпатии:
    8
    Пол:
    Мужской
    vint56, попробовал, при установке прогресс не идет, но в папке временных файлов распаковывается архив и установка длится вечно, даже отменить нельзя
     
  18. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    908
    Симпатии:
    667
  19. Пользователь

    Регистрация:
    3 дек 2016
    Сообщения:
    102
    Симпатии:
    8
    Пол:
    Мужской
    vint56, нашел причину проблемы, из-за того что архив был сжат через 4x4:b100mb:lzma, бeз 4x4 все отлично распаковалось, так и не понял почему с 4x4 такие проблемы.
     
  20. Пользователь

    Регистрация:
    18 сен 2014
    Сообщения:
    485
    Симпатии:
    72
    Пол:
    Мужской
    Что-то в последнее время ни одной игры не могу нормально пожать через пзлиб...Пресловутая ошибка CRC в четырех играх вылезает (Последняя попытка была на игре mxgp3 the official motocross videogame)...Кто-нибудь нашел вариант как этого избежать?
    ЗЫ. Советуют понизить параметр t100p хотя бы наполовину...Попробую

    Помогло)) Использовал такие параметы для сжатия
    [External compressor ; pZlib]
    header = 0
    packcmd = pZLib e -m2 -x -s -t50p - -o - <stdin> <stdout>
     
    Последнее редактирование: 31 май 2017

Поделиться этой страницей