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

Проблема с сжатием

Тема в разделе "FreeArc", создана пользователем Armenish, 11 апр 2015.

  1. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    Извиняюсь что достаю вас, но есть ли способ распаковки архивов через reflate_srep_arc_GOZARCK.7z в Inno Setup ?
     
  2. Ветеран

    Регистрация:
    26 дек 2014
    Сообщения:
    315
    Симпатии:
    190
    Пол:
    Мужской
    У меня вроде получилось сжать папками (Смотри вложение), а как в инно прописать, самому интересно:)
     

    Вложения:

  3. Ветеран

    Регистрация:
    2 янв 2015
    Сообщения:
    40
    Симпатии:
    5
    нет ни чего сложного!
    if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Unpack1.bat'), ExpandConstant(''), ExpandConstant('{app}\'), '...',true) then break;
     
  4. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    Всем спасибо за ответы, всё работает))))

    Теперь ясно как они умудрились так сжать её, посмотрим как долго устанавливаться будет)))
     
  5. Ветеран

    Регистрация:
    17 июн 2011
    Сообщения:
    471
    Симпатии:
    282
    vint56,
    Вот за каким чёртом ты это сделал, видимо пиратки GTA 4 с устновкой в одни сутки было мало, теперь ЖТА 5 с устоновкой в двое суток надо.

    Armenish,
    paq тогда уж после рефлейта можно заюзать чтоб наверняка меньше всех.
     
    Последнее редактирование: 12 апр 2015
  6. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    886
    Симпатии:
    653
    Snoopak96, а ты будеш качать такие репаки я нет
     
  7. Ветеран

    Регистрация:
    3 фев 2014
    Сообщения:
    187
    Симпатии:
    38
    ачо reflate круче precomp'a?
    вроде одно и тоже делают o_O
    реквестирую cls для фриарка :3
     
  8. Ветеран Модератор

    Регистрация:
    15 июн 2011
    Сообщения:
    899
    Симпатии:
    500
    Таким способом - долго
     
  9. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    Snoopak96, тут дело не в размере, вот столько людей откликнулись и помогли, практически на блюдечке всё поднесли и помогли разобраться и понять как это 60 гб ужали до 35.

    А вот этот скотина ситер даже сказать не хотел как добился такого сжатия, а сам он небось на этом же форуме узнал как ужать её и теперь выдает якобы за своё, недопрогер хренов он короче!
     
  10. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    886
    Симпатии:
    653
    Здесь 2 выбора
    1 качать 60 гигов
    2 35 но время установки очень долгое и каждый сам решит что ему качать
    тест на время
    x64f.rpf после reflate_srep_lzma время создания архива 17 минут вес 1 028 757 504 байт после 513 153 332 байт распаковка 12 минут занимает
     
    Последнее редактирование: 12 апр 2015
  11. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    vint56, по мне так в репаке вообще нет смысла, игра уже 5 дней как валяется на трекерах, даже у кого скорость слабая мог бы уже скачать, а в день релиза просто скопировать кряк сверху.
     
  12. Ветеран R.G. Revenants

    Регистрация:
    26 июн 2011
    Сообщения:
    54
    Симпатии:
    35
    Нет, не одно и то же, с технической точки зрения. И нет, reflate не круче precomp-а.

    Precomp
    сканирует входные данные на предмет наличия в них заголовка сжатого deflate потока. Как только такой заголовок найден, Precomp пытается расжать его и делает он это, исходя из предположения, что это "правильный" поток, не выходящий за рамки deflate спецификации. Если поток удалось расжать, то precomp начинает "драчить" этот поток, перебирая комбинации уровня сжатия zlib и уровни памяти. А таких комбинаций может быть 81 штука.
    Если повезло и некая комбинация дала сжатый поток идентичный тому, что был найден, то расжатый поток пишется в pcf файл и precomp переходит к следующему.

    Reflate
    тоже сканирует данные и ищет сжатые потоки, и пытается их расжать. Но на основе собственной реализации deflate, которая учитывает некоторые нестандартные реализации сжатия.
    Это и хорошо и плохо. Хорошо тем, что некоторые потоки, которые не расжались precomp-ом, расжимаются через Reflate. Плохо тем, что подобная реализация, для успешного восстановления сжатого потока, использует трюк.
    Когда reflate расжал поток, то он в отличии от precomp, ничего не "дрочит". Он не знает с каким уровнем сжатия\памяти был сделан поток и ему на это даже наплевать. Для успешного воссоздания оригинального сжатого потока, reflate использует файлы коррекции, которые позволяют получить идентичность. Вы сами можете увидеть эти файлы в папке, где находятся расжатые потоки. Это файлы с расширением hif. Именно поэтому reflate гораздо медленнее Precomp и именно поэтому reflate менее эффективен чем precomp на тех данных, где precomp видит и обрабатывает сжатые потоки.

    А теперь самое неприятное.
    Мало того, что reflate медленный, так он еще и глючный.
    1. Нет поддержки больших файлов.
    Вы можете не заметить этого, так как в некоторых версиях, при достижении некого порога, reflate просто начнет либо перезаписывать текущие unp файлы, либо создавать новые с адресами, которые перехлестнут другие данные. Сколько осилит reflate на ваших данных - предсказать невозможно.
    Так что если кто планирует заюзать reflate на 60 ГБ данных - не тратьте свое время.​
    2. reflate может встать колом на ровном месте или крэшнуться, или вызвать ошибку распаковки.
    В результате долгих тестов выяснилось, что на некоторых потоках, reflate теряет несколько байт и создает сжатый поток, который короче оригинального, либо просто крэшится.
    Можете попробывать взять прикрепленный файл, извлечь из него reflate_error.dat и попробывать сжать.​
    3. В reflate нет рекурсии.

    Так что на данном этапе, Reflate - это эксперимент, непригодный для использования.
     

    Вложения:

    Последнее редактирование: 12 апр 2015
  13. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    Skymmer, а кроме Precomp и Reflate есть что-то другое для разжатия ? Я думаю механики как раз Reflate и используют часто, хз.

    Сжимать прекомпом в брут режиме нереально просто, на это года уйдут :unknown:

    П.С. если хеш сумма извлеченных файлов совпадает с оригиналом, получается что файлы точно не были повреждены, ведь если при распаковке файлы теряют байты то размер не может же совпадать ?
     
    Последнее редактирование: 12 апр 2015
  14. Ветеран

    Регистрация:
    3 фев 2014
    Сообщения:
    187
    Симпатии:
    38
    Skymmer, ясно, спс за разъяснение
    по одному компьютеру на файл, за пол года справишься ;)
     
  15. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    269
    Симпатии:
    112
    Разжимать гта 5 прекомпом или рефлейтом это уже идиотизм. Пока 16 гигабайтный гта 4 установится обалдеть можно, а тут их 60 (без видео аудио наверное 40 гб).
     
  16. Ветеран

    Регистрация:
    3 фев 2014
    Сообщения:
    187
    Симпатии:
    38
    почитал еще это, голова заболела...
    а level нужно подбирать путем перебора (1-9) ? или он толком ни на что не влияет?
    и эти dll'ки для кого, ктонить в курсе?
    так то он не очень и медленный, если все операции в памяти делаются. На HDD конечно хреново наверно, все таки из одного 500 мегов файла, получать ~15к штук мелких -- это жуть для диска
     
  17. Ветеран Модератор

    Регистрация:
    15 июн 2011
    Сообщения:
    899
    Симпатии:
    500
    Ню видимо для всех :)
     
  18. Ветеран

    Регистрация:
    3 фев 2014
    Сообщения:
    187
    Симпатии:
    38
    кому интересна более тесная интеграция reflat'а с фриарком, смотрите прикрепленный файл
    как пользоваться?
    закидываете файлы из архива в директорию фриарка (сам фриарк должен быть в %PATH% само собой)
    далее обычным способом, например так: reflate:l6:s100:t4+rep:512mb+lzma:64mb:max
    в итоге reflate отработает в режиме компрессии 6 (l6), пропустит блоки меньше 100 байт (s100) и все это в 4 потоках (t4) :3
    хотя если %TEMP% на HDD, от мультипоточности толку наверно небуит...

    возможны баги в батнике, дайте знать, если что.
     

    Вложения:

    • arc-reflate.arc
      Размер файла:
      36,6 КБ
      Просмотров:
      88
    Mrman и vint56 нравится это.
  19. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    toolame, а что по поводу распаковки в inno setup ? что-то можно сделать чтоб прогрессбар нормально отображался ?

    P.S. а как в батнике прописать ?

    arc.exe a -ep1 -dses --dirs -s; -wD:\ -lc- -di -i2 -r -reflate:l6:s100:t4+srep:l512+lzma:a1:mfbt4:d200m:fb128:mc1000:lc8 Data.bin Data\*
    pause

    Так не работает
     
    Последнее редактирование: 15 апр 2015
  20. Старожил

    Регистрация:
    25 май 2013
    Сообщения:
    26
    Симпатии:
    1
    П.С. вопрос по поводу прогрессбара еще актуален, через records.inf не работает, прогрессбар при распаковке несколько заново начинается.

    Можно как-то совместить распаковку батника с работой прогрессбара ?
     

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