Page 49 of 150

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

Posted: Sun 15 Aug, 2010 22:26
by 2useven10
Тема для обсуждения arclite — нового альтернативного плагина архиватора 7-Zip для Far.
("Старый" плагин 7zipalt обсуждается в прежней теме.)

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

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











Кодек LZHAM

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

Posted: Sun 10 Apr, 2011 06:40
by Тигрёнок

Latest post of the previous page:

Бага. Если из 7z-архива переносить файлы на панель посредством F6, то при наличии на панели файла с тем же именем, что и файл в архиве, задаётся естественный вопрос, что делать. Выбираем Skip и видим, что по результатам данный файл из архива всё равно удаляется.

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

Posted: Sun 10 Apr, 2011 09:13
by interligator
Почему-то не заходит (по Enter, по Ctrl+PgDn) в Adobe Flash CS5 .fla, которые на самом деле zip.
Плагин 7zip и сам 7zip (GUI) тоже почему-то не распознают эти файлы (Error: Can not open file as archive).
Сигнатура - 50 4b 03 04 14 00 00 08 (вроде бы обычный zip). Мultiarc их открывает.

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

Posted: Fri 22 Apr, 2011 07:28
by Skirda
А можно к сорцам добавить документ, аля HACKING-RU, в котором описать, например, как можно добавлять новые форматы (ну и пр. полезную инфу по кодингу, относящуюся к этому плагину)?
Или все зависит от ББ (7zip)?

Sorry, 49 страниц не осилил.

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

Posted: Fri 22 Apr, 2011 11:15
by t-rex
Валя, тебе стоит больше смотреть в сторону newarc.

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

Posted: Fri 22 Apr, 2011 11:39
by chupakabra
Тигрёнок, поправил. Вероятно выпущу обновленную версию для Far2 с этим исправлением.

interligator, лучше сообщить об этом автору 7-Zip

Skirda, у меня есть планах создание простого примера модуля для поддержки нового формата. Но пока руки до этого не дошли. Если есть какие-то вопросы, всегда можно обсудить.

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

Posted: Fri 22 Apr, 2011 19:22
by WARP ItSelf
Вкрадце (для Вали).

1. Делается модуль, экспортирующий функции:

CreateObject
GetHandlerProperty

для одного формата

или

CreateObject
GetHandlerProperty2
GetNumberOfFormats

если модуль реализует сразу несколько форматов.

1.1. GetHandlerProperty должна возвращать различные атрибуты поддерживаемого формата:

- название формата
- GUID (его будут передавать, когда будут вызывать CreateObject)
- расширение файла по умолчанию
- сигнатуру для поиска архива в файле (для SFX)

и т.п.

Не знаю, чем из этого пользуется арклайт.

1.2. CreateObject будет вызываться (в данном случае arclite'ом) для создания COM-объектов, реализующих различный функционал. В первую очередь реализуются интерфейсы IInArchive (чтение и распаковка содержимого архива) и IOutArchive (удаление, добавление и изменение элементов архива).

2. Необходим класс, реализующий интерфейс IInArchive. Это интерфейс служит для открытия архива, получения свойств элементов архива, извлечения элементов архива, получения свойств самого архива. Приведен в файле IArchive.h от 7z.

3. При необходимости добавления/удаления/создания необходим класс, реализующий интерфейс IOutArchive. Основная функция - обновление элементов архива. Приведен в файле IArchive.h от 7z.

4. Соответсвенно arclite/7z вызывает GetHandlerProperty несколько раз и получает всю необходимую информацию о формате.

4.1 При необходимости чтения/распаковки архива вызывает CreateObject(IInArchive) и получает экземпляр класса, реализующего IInArchive. Пользуется им по назначению.

4.2. При необходимости добавления элементов сначала вызывает CreateObject(IInArchive), а затем (внимание!) вызывает у полученного объекта функцию QueryInterface(IOutArchive), т.е. производит экземпляр класса, реализующего IOutArchive, связанный с объектом, реализующим IInArchive. Дальше вызывает методы IOutArchive, а написанный Валей сабплагин должен будет копировать элементы из старого архива (IInArchive) в новый (IOutArchive) (и добавлять новые, если нужно).

4.3. При необходимости создания архива сразу вызвается CreateObject(IOutArchive), а потом дергаются его методы. Реализация соответственно должна создать файл архива и добавить в него требуемое.

Как-то так, chupakabra поправит, если я ошибаюсь.

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

Posted: Sun 24 Apr, 2011 19:34
by Docent1
1.5.0
Отвалилось открытие vhd файлов...

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

Posted: Mon 25 Apr, 2011 08:55
by chupakabra
А 7-zip этот файл открывает? Если да, то где его можно взять?

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

Posted: Mon 25 Apr, 2011 14:07
by Docent1
chupakabra wrote:А 7-zip этот файл открывает? Если да, то где его можно взять?
Да, открывает. А взять vhd файл:
http://download.microsoft.com/download/ ... _ru-ru.exe
Нужно извлечь файл xpm: WindowsXPMode_ru-ru.exe\sources\xpm;
Затем из файла xpm извлечь VirtualXPVHD (переименовать его в VirtualXP.VHD).
Для сравнения открыть его старой и новой версиями arclite.

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

Posted: Mon 25 Apr, 2011 19:14
by chupakabra
Да, есть проблема, причем проявляется только в релиз версии и без отладчика. Файлы на всякий случай убрал, до тех пока не разберусь в чем там дело.

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

Posted: Mon 25 Apr, 2011 20:45
by chupakabra
Поправил.

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

Posted: Mon 25 Apr, 2011 20:50
by Kerberos464
спасибо за новую версию.
в архивах с плагином отсутствует changelog. и версию 7z.dll, наверное, есть смысл обновить до 7.22 (хоть и бета).

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

Posted: Wed 27 Apr, 2011 13:42
by gk
Установил версию arclite 1.51, пытаюсь отредактировать файл 1cv7.md (конфигурация 1с), редактировать дает, дает сохранить через F2, при выходе из редактируемой ветки выдет сообщение "Изменение архива невозможно | plugin.cpp:474" и в итоге изменения не сохраняются.

Раньше я это мог делать с помощью плагина DocFile Browser, все работало, сейчас этот плагин не работает в Far2.

Можно ли доработать эту возможность в arclite?

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

Posted: Wed 27 Apr, 2011 13:49
by John Doe
gk wrote:Раньше я это мог делать с помощью плагина DocFile Browser, все работало, сейчас этот плагин не работает в Far2.
А у меня почему-то работает.
Вот кстати версия поновее: http://sourceforge.net/projects/sevenfa ... z/download (вроде ничем от старой не отличается).

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

Posted: Wed 27 Apr, 2011 14:53
by chupakabra
>> Можно ли доработать эту возможность в arclite?

Это от 7-zip зависит.

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

Posted: Wed 27 Apr, 2011 14:55
by chupakabra
Сделал пример модуля поддержки стороннего архивного формата:
http://farmanager.com/svn/trunk/plugins ... e/example/
Вопросы и замечания приветствуются.