View previous topic :: View next topic |
Author |
Message |
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Mon Apr 10, 2006 20:13 Post subject: |
|
|
vserd wrote: | Покажи мне как можно получить размер сжатого файла |
Это не всегда можно сделать - не все архиваторы ведь возвращают такую информацию. Но 7zip, судя по плагину 7zip0.4.8, возвращает. |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Tue Apr 11, 2006 11:01 Post subject: |
|
|
funduk wrote: |
Но 7zip, судя по плагину 7zip0.4.8, возвращает. |
Узко заточенный плугин может гораздо больше чем широко форматный. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Tue May 09, 2006 23:48 Post subject: |
|
|
2vserd
WDX-плагин-request тебе:
используя текущий файл multiarc.ini выдать по файлу, будет ли он рассмотрен мультиарком (передастся ли он архиватору), и если будет, то какая именно секция сработает и какая именно позиция из idpos даёт результат первой.
Также полезно узнавать, какая строка (задаваемой в настройках длины) находится по такому-то смещению (по колонке на каждое), а также предыдущие/следующие 4 (или тоже в настройках) байта.
Число смещений можно ограничить 20 (т.е. всего 60 возможных значений).
Даже имхо прошу много, но и первой части будет достаточно. Возможно, для создания основной части плагина достаточно будет копипаста из кода самого мультиарка |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Wed May 10, 2006 12:25 Post subject: |
|
|
funduk
По русски пожалуйста :(. Ничего не понял. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed May 10, 2006 12:37 Post subject: |
|
|
Первое:
нужно просто парсить секции мультиарка и искать, какая из них сработает на данный файл (это же WDX плагин => три поля: название секции, id, которую нашли в файле, и idpos, начиная с которой в файле идёт эта найденная id).
Что непонятно?
Второе:
берётся файл, открывается на чтение и смотрим на строку длины xxx по смещению yyy, где xxx и yyy берутся из настроек самого плагина (=ini). Т.е. здесь файл multiarc.ini не задействован. |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Wed May 10, 2006 12:45 Post subject: |
|
|
funduk
WDX ты будешь писать или я?
Если я, тогда пас. Меня SFX достал по самое не хочу. А я хочу еще сделать изменение в GUI интерфейсе плгина.
исходники можешь взять с CVS Sourceforge. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed May 10, 2006 12:49 Post subject: |
|
|
Ты, конечно
Но ведь для начала можно и не парсить те секции, в которых skipsfxheader = 1. |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Tue May 16, 2006 10:36 Post subject: |
|
|
Новая бета 1.3
hччp://prdownloads.sourceforge.net/wcx/wcx_multiarc_13b.zip?download |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Sun May 21, 2006 18:39 Post subject: |
|
|
Предлагаю добавить регэкспы для распознавания ID. В нынешних аддонах начальные части часто совпадают...
Сейчас, например, так:
Code: |
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" |
А будет так:
Code: | 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)" |
В кавычках - то, что должно передаться процедуре парсинга регэкспа.
Сильно убыстрит поиск. И упростит запись для тех, кто имеет должную сноровку. |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Mon May 22, 2006 12:26 Post subject: |
|
|
Подумаю, но регэкспы не так просты для добавления. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Mon May 22, 2006 17:17 Post subject: |
|
|
Я надеюсь, что ты сам не начнёшь их добавлять, а возьмёшь библиотеку какую-нибудь. А потом просто: если символ из ID в регэкспах должен иметь перед собой бэкслэш (как скобки в моём примере; ещё и точки туда надо, т.е пример у меня не корректный), то в новую строку добавляются два символа - \ и сам символ. Если не должен, то он идёт в новую строку в одиночестве. Выглядит всё просто. |
|
Back to top |
|
|
vserd
Joined: 26 Apr 2005 Posts: 118
|
(Separately) Posted: Tue May 23, 2006 11:37 Post subject: |
|
|
Рег экспы не предназначены для двоичных файлов, так что в МА их не будет. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Tue May 23, 2006 15:59 Post subject: |
|
|
Поподробнее, пожалуйста.
Неужели нельзя из двоичного файла скопировать в строку длины, скажем, 50 нужные символы и работать со строкой? Можно даже запретить в регэкспах использование +, * и т.п. и тогда необходимая длина высчитается точно (тока парсить самому придётся, чтобы длину посчитать). Или это число (50) в каждой секции задавать... |
|
Back to top |
|
|
Alextp
Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Tue May 23, 2006 16:17 Post subject: |
|
|
Насколько я понял, все известные библиотеки регэкспов просто не расчитаны на двоичные файлы. Поэтому будут дико глючить. _________________ UniViewer - CudaText - LogViewer
|
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Tue May 23, 2006 16:24 Post subject: |
|
|
Понятное дело не рассчитаны. Я и говорю: надо им подсовывать строки. Со строками-то они должны работать даже если в них есть непечатные символы. |
|
Back to top |
|
|
|