arclite — работа с архивами на основе 7-Zip

Здесь можно обсудить ваш любимый плагин.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Тема для обсуждения arclite — нового альтернативного плагина архиватора 7-Zip для Far.
("Старый" плагин 7zipalt обсуждается в прежней теме.)

Внимание:
Начиная с билда 1762 плагин входит в комплект поставки юникодной версии FAR'а, заменяя собой Multiarc.
В arclite не реализованы некоторые функции, присутствовавшие в Multiarc, в частности упаковка в RAR.

Обсуждение: arclite вместо MultiArc в комплекте Far 2











Кодек LZHAM
User avatar
HaRT
Moderator
Posts: 9527
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

arclite — работа с архивами на основе 7-Zip

Post by HaRT »

Latest post of the previous page:

2useven10 wrote: Mon 17 Jul, 2017 19:45Кривое решение - смешивание 2-х разных плагинов в одной .dll
Не могу вполне согласиться. Иногда ключевой особенностью формата является возможность использования некоего кодека, и тогда разумнее совместить их как раз в одной библиотеке, чем дублировать кодек в двух или выносить в третью.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec »

2useven10 wrote: Mon 17 Jul, 2017 19:45Кривое решение - смешивание 2-х разных плагинов в одной .dll, не вижу ни одной...
Понятно, что eDecoder с дополнительным кодеком - это синтетический продукт, созданный для тестирования. Но возьмем что нибудь более натуральное. Например, кодек ZSTD (LZ4, LZ5). По факту, сейчас ZSTD.dll реализует только кодек для использования метода сжатия ZSTD совместно с контейнером 7Z. Но существует и формат файла ZSTD, для которого используется тот же самый код. Я просил автора ZSTD.dll добавить в библиотеку помимо функциональности кодека дополнительно функциональность форматного плагина, автор ответил, что возможно сделает. Если сделает, что появится полноценная библиотека, которая реализует как кодек ZSTD, так и формат ZSTD. И делить его на две библиотеки нет смысла.
2useven10 wrote: Mon 17 Jul, 2017 19:457z[FM].exe из вашей гибридной .dll вытаскивает и формат и кодек?
Да.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Dec wrote: Mon 17 Jul, 2017 20:14Если сделает, что появится полноценная библиотека, которая реализует как кодек ZSTD, так и формат ZSTD.
Тогда и вернёмся к этому вопросу. Я не не считаю текущую реализацию идеалом, просто не вижу смысла менять её сейчас.
Shmuel
Posts: 6166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 329 times

arclite — работа с архивами на основе 7-Zip

Post by Shmuel »

Захожу внутрь zip-файла, становлюсь на какой-либо файл, нажимаю CtrlA.
Что означает последняя строчка (80 0) ?
╔═══════════ Attributes ═══════════╗ ║ Path list.temp ║ ║ Is Folder No ║ ║ Size 1.71 KB = 1754 ║ ║ Packed Size 155 ║ ║ Modified 04/06/2017 22:33:12 ║ ║ Created 04/06/2017 22:35:21 ║ ║ Accessed 04/06/2017 22:35:21 ║ ║ Attributes A ║ ║ Encrypted No ║ ║ CRC 3E72832D ║ ║ Method Deflate ║ ║ Host OS FAT ║ ║ Version 20 ║ ║ 80 0 ║ ╚══════════════════════════════════╝
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Скорее всего это номер тома.
Почему так отображается - надо смотреть.
Может быть параметр появился после того, как писался код который это показывает.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Ну да в коде есть имена для 61 параметра, а их теперь может быть 95.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

arclite b259.
Kirillony
Posts: 229
Joined: Tue 24 Jan, 2006 18:49
Has thanked: 6 times
Been thanked: 4 times

arclite — работа с архивами на основе 7-Zip

Post by Kirillony »

При распаковке некоторых файлов из официального EXE-дистрибутива Skype - вот такая ошибка.

Code: Select all

╔═══════════════════════ arclite ════════════════════════╗
║                    Ошибка в данных                     ║
║ C:\Users\Admin\AppData\Local\Temp\F3TC7B5.tmp\SKYPEMSI ║
║ D:\DOWNLOADS\Skype\Skype 7.40.0.103\SkypeSetupFull.exe ║
║                      error.hpp:10                      ║
╟────────────────────────────────────────────────────────╢
║    { Игнорировать } [ Игнорировать все ] [ Отмена ]    ║
╚════════════════════════════════════════════════════════╝
При этом часть файлов(или ресурсов?) из этого же дистрибутива распаковываются нормально. В чём здесь проблема?
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Kirillony wrote: Sun 08 Oct, 2017 19:28из официального EXE-дистрибутива Skype
Не знаю где это чудо берут.
Kirillony
Posts: 229
Joined: Tue 24 Jan, 2006 18:49
Has thanked: 6 times
Been thanked: 4 times

arclite — работа с архивами на основе 7-Zip

Post by Kirillony »

2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

В 7zfm 17.01 тоже 'Ошибка в данных'.
Так что это к Игорю Павлову.
Ошибка во всех версиях от 9.20 до 17.01
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec »

Обратил внимание, что у субплагинов не вызывается SetCodecs и у IInArchive не запрашивается ISetCompressCodecsInfo. Соответственно, субплагины не имеют доступа к списку кодеков.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Dec, Для форматных плагинов SetCodecs вроде бы зовётся.
Для чего надо запрашивать ISetCompressCodecsInfo, не знаю - не было потребности.
Сейчас к сожалению много времени на это потратить не могу.
Если распишете для чего всё это нужно (можно с примерами на паскале или псевдокоде ...), будет больше шансов.
Ну или может найдётся кто-то ещё, чтобы этим заняться...
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec »

2useven10 wrote: Mon 23 Oct, 2017 21:15Для форматных плагинов SetCodecs вроде бы зовётся.
Не могу подтвердить.
2useven10 wrote: Mon 23 Oct, 2017 21:15Сейчас к сожалению много времени на это потратить не могу.
Я не настаиваю, просто сообщаю о найденном недочете.
2useven10 wrote: Mon 23 Oct, 2017 21:15распишете для чего всё это нужно
Написал по просьбе пользователя моего ПО поддержку формата lzip. Сделал это в виде плагина, совместимого с 7zip. Формат lzip основан на методе сжатия lzma. Поскольку код lzma уже есть в 7z.dll, то смысла дублировать его нет.

Как раз для таких ситуаций предусмотрены функция SetCodec и интерфейс ISetCompressCodecsInfo. По своей сути они равнозначны и дублируют друг друга, оба передают плагину объект ICompressCodecsInfo. Только SetCodec вызывается после загрузки плагина (и перед выгрузкой, но с null в качестве параметра), а через ISetCompressCodecsInfo можно передать объект конкретному экземпляру IInArchive или IOutArchive. Сам 7Zip использует оба метода. Объект ICompressCodecsInfo представляет собой простой перечеслитель кодеков, которые находятся НЕ в текущей dll. Т.е. 7Zip передает в плагин alpha.dll те кодеки, которые расположены в 7z.dll и в плагине beta.dll, а в beta.dll он передает те кодеки, которые расположены в 7z.dll и в alpha.dll. Как то так.

Форматный плагин использует эти списки для нахождения нужного кодека и создания его экземпляра. И мой lzip плагин не работает в far, поскольку не вызывается SetCodecs, и не вызывается ISetCompressCodecsInfo, и соответственно доступа к lzma кодеку нет.

Повторюсь, мне это не критично, я просто тестировал плагин на разных клиентах, и нашел недочет в far, о чем и сообщаю.
2useven10
Posts: 4072
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Dec, OK/
C SetCodecs ясно ISetCompressCodecsInfo могу подсмотреть в 7z.
Если можете дать ваш lzip плагин для тестирования (можно в private если он не public, раздавать его я не буду), мне будет проще.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

arclite — работа с архивами на основе 7-Zip

Post by Dec »

Last edited by Dec on Mon 23 Oct, 2017 22:25, edited 1 time in total.
Post Reply

Return to “Обсуждение плагинов”