MultiArc

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

vserd писал(а):Покажи мне как можно получить размер сжатого файла
Это не всегда можно сделать - не все архиваторы ведь возвращают такую информацию. Но 7zip, судя по плагину 7zip0.4.8, возвращает.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

funduk писал(а): Но 7zip, судя по плагину 7zip0.4.8, возвращает.
Узко заточенный плугин может гораздо больше чем широко форматный.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

2vserd
WDX-плагин-request тебе:
используя текущий файл multiarc.ini выдать по файлу, будет ли он рассмотрен мультиарком (передастся ли он архиватору), и если будет, то какая именно секция сработает и какая именно позиция из idpos даёт результат первой.

Также полезно узнавать, какая строка (задаваемой в настройках длины) находится по такому-то смещению (по колонке на каждое), а также предыдущие/следующие 4 (или тоже в настройках) байта.
Число смещений можно ограничить 20 (т.е. всего 60 возможных значений).

Даже имхо прошу много, но и первой части будет достаточно. Возможно, для создания основной части плагина достаточно будет копипаста из кода самого мультиарка :D
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

funduk
По русски пожалуйста :(. Ничего не понял.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Первое:
нужно просто парсить секции мультиарка и искать, какая из них сработает на данный файл (это же WDX плагин => три поля: название секции, id, которую нашли в файле, и idpos, начиная с которой в файле идёт эта найденная id).

Что непонятно?

Второе:
берётся файл, открывается на чтение и смотрим на строку длины xxx по смещению yyy, где xxx и yyy берутся из настроек самого плагина (=ini). Т.е. здесь файл multiarc.ini не задействован.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

funduk
WDX ты будешь писать или я?
Если я, тогда пас. Меня SFX достал по самое не хочу. А я хочу еще сделать изменение в GUI интерфейсе плгина.
исходники можешь взять с CVS Sourceforge.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Ты, конечно :)

Но ведь для начала можно и не парсить те секции, в которых skipsfxheader = 1.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

Новая бета 1.3
hччp://prdownloads.sourceforge.net/wcx/wcx_multiarc_13b.zip?download
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Предлагаю добавить регэкспы для распознавания ID. В нынешних аддонах начальные части часто совпадают...

Сейчас, например, так:

Код: Выделить всё

ID=49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 31 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 33 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 35 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 45 78 74 65 6E 73 69 6F 6E 73 20 53 65 74 75 70 20 44 61 74 61 20 28 33
;ID="Inno Setup Setup Data (3.0.1) , Inno Setup Setup Data (3.0.3) , Inno Setup Setup Data (3.0.5) , Inno Setup Extensions Setup Data (3"
А будет так:

Код: Выделить всё

ID=49 6E 6E 6F 20 53 65 74 75 70 20 (53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E (31|33|35) 29|45 78 74 65 6E 73 69 6F 6E 73 20 53 65 74 75 70 20 44 61 74 61 20 28 33)
;ID="Inno Setup (Setup Data \(3.0.(1|3|5)\)|Extensions Setup Data \(3)"
В кавычках - то, что должно передаться процедуре парсинга регэкспа.

Сильно убыстрит поиск. И упростит запись для тех, кто имеет должную сноровку.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

Подумаю, но регэкспы не так просты для добавления.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Я надеюсь, что ты сам не начнёшь их добавлять, а возьмёшь библиотеку какую-нибудь. А потом просто: если символ из ID в регэкспах должен иметь перед собой бэкслэш (как скобки в моём примере; ещё и точки туда надо, т.е пример у меня не корректный), то в новую строку добавляются два символа - \ и сам символ. Если не должен, то он идёт в новую строку в одиночестве. Выглядит всё просто.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

Рег экспы не предназначены для двоичных файлов, так что в МА их не будет.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Поподробнее, пожалуйста. :)
Неужели нельзя из двоичного файла скопировать в строку длины, скажем, 50 нужные символы и работать со строкой? Можно даже запретить в регэкспах использование +, * и т.п. и тогда необходимая длина высчитается точно (тока парсить самому придётся, чтобы длину посчитать). Или это число (50) в каждой секции задавать...
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Насколько я понял, все известные библиотеки регэкспов просто не расчитаны на двоичные файлы. Поэтому будут дико глючить. :)
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Понятное дело не рассчитаны. Я и говорю: надо им подсовывать строки. Со строками-то они должны работать даже если в них есть непечатные символы.
Ответить