Observer — распаковка файлов из различных контейнеров

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Mon 31 Aug, 2009 11:29

Тема для обсуждения плагина Observer.
Плагин предназначен только для распаковки файлов. Запаковка/редактирование архивов не планируется.

Хотелки/баги:

Известные проблемы:

Планируемые новые модули:

Если "ничего не работает", то прежде чем писать сюда:


Сторонние модули:
Dir — поддержка вывода команд dir и ls в качестве виртуального архива. (на версии 1.10 работать не будет в связи с изменением API модулей)
Inno Setup - поддержка файлов Inno Setup (сделан на основе innounp).

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Observer — распаковка файлов из различных контейнеров

Post by Max Rusov » Thu 02 Apr, 2015 08:24

Latest post of the previous page:

Ariman wrote: Оно как бы да, но WideString и UnicodeString это разные вещи, хотя и обе про юникод.
Вам шашечки - или ехать?

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Thu 02 Apr, 2015 09:13

Max Rusov wrote:Вам шашечки - или ехать?
Та я вообще выше Delphi7 ничего не использую. :) Но может человек привык к фишкам новых строк, там всё таки особенности есть свои.

User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT » Thu 02 Apr, 2015 11:21

Ariman wrote: Innounp дюже рефакторить надо для этой цели. Там всё заточено на то, что это консольное приложение.
Если надо, могу попытаться помочь советом — не по части конкретно Innounp, а по части преобразования консольного приложения в либу.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Yegor
Posts: 964
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 3 times
Been thanked: 14 times

Observer — распаковка файлов из различных контейнеров

Post by Yegor » Thu 02 Apr, 2015 14:00

Речь в том, чтобы компилировать под новой версией Делфи (где string - юникодный), нужно перешерстить весь код и сделать замену string -> AnsiString, Char -> AnsiChar и т.д. "Тупая" замена по всем файлам, и принцип "авось" заработает - не вариант. А с умом - времени нет.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Thu 02 Apr, 2015 14:11

HaRT wrote:Если надо, могу попытаться помочь советом — не по части конкретно Innounp, а по части преобразования консольного приложения в либу.
Теория особых проблем не вызывает. Вот с практикой сложности. :) Вся тулза заточена на целую тучу глобальных переменных и наличие консоли (туда часто что-то пишется). А если использовать как библиотеку, то глобальные переменные это совсем нехорошо.
Yegor wrote:Речь в том, чтобы компилировать под новой версией Делфи (где string - юникодный), нужно перешерстить весь код и сделать замену string -> AnsiString, Char -> AnsiChar и т.д. "Тупая" замена по всем файлам, и принцип "авось" заработает - не вариант. А с умом - времени нет.
У меня была когда-то мысль адаптировать под новые версии Delphi сорцы. Но там куча кода, которые был писан до того, как сам InnoSetup переехал. Меня посетила лень, и я решил, что проще новые файлы под старую делфю заточить, чем всё остальное под новую. :ha:

User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT » Thu 02 Apr, 2015 17:01

Ariman wrote: наличие консоли (туда часто что-то пишется)
Так вот нельзя ли у них перехватить дескрипторы 0, 1 и 2 — через reopen или ещё как? Я что-то читал про такие техники — при необходимости найду.
Ariman wrote: если использовать как библиотеку, то глобальные переменные это совсем нехорошо
Да никакой особой разницы вроде. Модуль загрузился — переменные доступны; можно при необходимости принудительно занулить сегменты неинициализированных данных. Разумеется, их main() надо будет растащить на инициализацию и финализацию.
Или я что-то важное упускаю?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Thu 02 Apr, 2015 19:17

HaRT wrote:Так вот нельзя ли у них перехватить дескрипторы 0, 1 и 2 — через reopen или ещё как? Я что-то читал про такие техники — при необходимости найду.
Можно, а толку то? Надо же нормально возвращать ошибки в родительскую программу. Опять же вопросы прога задает и читает ввод, не парсить же строчки. Надо уже нормально переделывать.
HaRT wrote:Да никакой особой разницы вроде. Модуль загрузился — переменные доступны; можно при необходимости принудительно занулить сегменты неинициализированных данных. Разумеется, их main() надо будет растащить на инициализацию и финализацию.Или я что-то важное упускаю?
Есть одна важная проблема с глобальными переменными - открывать можно только один файл. Попытаемся открыть на второй панели другой inno файлик - капут.

Я ещё не хочу сильно костыли лепить, потому что поддерживать надо обе проги параллельно. Хочется сделать нормальную систему, чтобы без проблем клепать обновления один раз сразу для всех.

Yegor
Posts: 964
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 3 times
Been thanked: 14 times

Observer — распаковка файлов из различных контейнеров

Post by Yegor » Thu 02 Apr, 2015 21:56

А где взять ModuleDef.h для 1.10 beta2? или он не менялся?
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Fri 03 Apr, 2015 08:41

Менялся. В 1.10 API модулей изменилось. В аттаче текущая версия (та же что и в beta2). Гарантий, что в релизе ничего не поменяется, не дам :).
Attachments
ModuleDef_1.10b2.rar
(1.04 KiB) Downloaded 40 times

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Observer — распаковка файлов из различных контейнеров

Post by John Doe » Wed 29 Apr, 2015 10:30

Ariman wrote: Гарантий, что в релизе ничего не поменяется, не дам .
Значит не поменялось?

P.S.
И надо понимать, что упомянутый в шапке сторонний модуль в новой версии не работает, надо бы пометить.

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Wed 29 Apr, 2015 11:13

John Doe wrote:Значит не поменялось?
Нет. Никаких изменений не было по сравнению с выложенным файлом.
John Doe wrote:И надо понимать, что упомянутый в шапке сторонний модуль в новой версии не работает, надо бы пометить.
Пометил.

Bio
Posts: 9
Joined: Thu 13 Jan, 2011 21:50

Observer — распаковка файлов из различных контейнеров

Post by Bio » Fri 22 May, 2015 18:15

Ariman,
выражаю благодарность автору за труды, постоянно пользуюсь и не нарадуюсь)

есть парочка пожеланий:
1. проверить работу плагина при запуске Фара в среде восстановление/установки (windows setup, windows recovery).
т.к. он вызывает исключение и роняет Фар (2.1.1807). приходится с командной строки переименовать, чтобы отключить.
собственно работа плагина и не требуется, т.к. маловероятно что в такой среде есть NET или либы MSVC.
просто очень бы хотелось, чтоб не падал).

2. очень опционально! если будет желание и время - запилить модуль поддержки распаковки RAR5, т.к. в 7z.dll не известно когда его добавят и добавят ли. а Multiarc c внешним распаковщиком совсем не айс.

мегареспект!

User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT » Fri 22 May, 2015 20:07

Bio wrote: приходится с командной строки переименовать
Обойти ошибку можно, запустив Фар с выборочным комплектом плагинов — см. ключ командной строки /p.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Wave
Posts: 1765
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 15 times

Observer — распаковка файлов из различных контейнеров

Post by Wave » Sat 23 May, 2015 11:49

Bio wrote:2. очень опционально! если будет желание и время - запилить модуль поддержки распаковки RAR5, т.к. в 7z.dll не известно когда его добавят и добавят ли. а Multiarc c внешним распаковщиком совсем не айс.

мегареспект!
О, да! Голосую за RAR5!!!
Пользуюсь ФАРом больше 20 лет © собирательный.

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Mon 25 May, 2015 17:01

Bio wrote:проверить работу плагина при запуске Фара в среде восстановление/установки (windows setup, windows recovery).т.к. он вызывает исключение и роняет Фар (2.1.1807).
Это точно из-за .NET-а. В некоторых случаях я падучку убрал, но не везде получилось исправить.
Bio wrote:а Multiarc c внешним распаковщиком совсем не айс.
А чего не айс то? Вроде работает нормально, файлы достать можно при необходимости.

Yegor
Posts: 964
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 3 times
Been thanked: 14 times

Observer — распаковка файлов из различных контейнеров

Post by Yegor » Tue 26 May, 2015 22:30

Ariman, нашел пример NSIS архива (Free_Encoder_Pack_2015-03-20.exe), который кривовато открывается Observer-ом, но нормально ArcLite-ом.

Скачать и посмотреть можно здесь: http://www.foobar2000.org/encoderpack (внизу ссылка Latest version).
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

Ariman
Posts: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman » Wed 27 May, 2015 13:15

Yegor wrote:который кривовато открывается Observer-ом, но нормально ArcLite-ом.
Ага, есть такое. Всё никак не дойдут руки портировать новую версию 7z к себе. Там в 9.3х автор исправил открытие таких архивов.

Post Reply

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