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

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

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

Post by Ariman »

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

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

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

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

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


Сторонние модули:
  • Dir — поддержка вывода команд dir и ls в качестве виртуального архива.
  • Inno Setup — поддержка файлов Inno Setup (сделан на основе innounp).
  • cab — распаковка нестандартных .cab архивов (Windows Update и др.)
Last edited by Ariman on Wed 04 May, 2022 14:36, edited 7 times in total.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Latest post of the previous page:

Это больше вопрос удобства отладки и тестирования. На сайте либы есть список всех RFC, которые там реализованы, плюс список разного софта, который её использует. Если, скажем, девелопер этого кода сидит на линухе, то возиться с Far-ом ему будет не удобно.
Ну и достаточно часто на несовместимость с распространенным софтом реагируют охотнее, чем на несовместимость с более редким :)
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman, добавьте, пожалуйста, в InnoUnp поле AppId (одна типовая строчка кода), как вроде собирались. Очень без него грустно.

22:20 MSK
Я пытался собрать его самостоятельно, не неизбежно натыкался на ошибки вроде [dcc32 Fatal Error] StructJoin.pas(4): F1026 File not found: 'StructList.inc', а если эту директиву убрать, то ломается в других местах.
Last edited by HaRT on Tue 06 Mar, 2018 19:52, edited 1 time in total.
Reason: Добавлен абзац про самостоятельную сборку
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

HaRT wrote: Tue 06 Mar, 2018 16:54 как вроде собирались.
Действительно, было дело. Завтыкал. Добавлю завтра.
HaRT wrote: Tue 06 Mar, 2018 16:54 Я пытался собрать его самостоятельно, не неизбежно натыкался на ошибки вроде
Надо сначала сгенерировать часть файлов. Запустите prep.bat.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Tue 06 Mar, 2018 20:38Добавлю завтра.
Спасибо! (Предпочтительно с ShowAlways=True.)
Ariman wrote: Tue 06 Mar, 2018 20:38Запустите prep.bat.
Ага, я уже тоже допетрил. Однако результатом доволен не вполне, поэтому предпочту, чтобы выла штатная сборка модуля с этим изменением.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

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

Post by Smitis »

Если бы ещё кто-нибудь InnoUnp для x64 собрал...
Разум когда-нибудь победит.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

HaRT wrote: Tue 06 Mar, 2018 21:08 Однако результатом доволен не вполне
А чем собирали?
Smitis wrote: Tue 06 Mar, 2018 21:10 Если бы ещё кто-нибудь InnoUnp для x64 собрал...
Софтина под Delphi 7 делается. А эта версия в х64 не умеет.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Tue 06 Mar, 2018 21:17А чем собирали?
Delphi 10.2 Starter Edition.
Недоволен же размером (1787 Kb в Release против 1166 Kb в модуле от pepak) и заглушкой вместо VERSIONINFO.
Может, конечно, я что-то где-то недокрутил — сегодня впервые в жизни Делфями воспользовался. :)
Last edited by HaRT on Tue 06 Mar, 2018 22:02, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Ну тут я даже не уверен что оно работать будет без каких-либо артефактов. Я всё на D7 делаю, там должно собираться без дополнительных усилий. Судя по его ответу, pepak заставил прогу собираться в более новой версии с некоторыми танцами. Но что из этого получается даже не знаю.
Надо, наверное, заняться выравниванием строковых типов в сорцах, чтобы с новыми компиляторами проблем меньше было. Новые и старые компиляторы по разному понимают тип String. И оригинальный Inno Setup как раз этим пользуется, собирая юникондную и анси версии в разных версиях delphi, но с одними исходниками. А я, когда адаптировал появление юникода, опирался именно под то, как семерка работает. Плюс куча старого кода оставалась в проекте, со старых версий IS, когда про юникод ещё и не думали.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

HaRT wrote: Tue 06 Mar, 2018 21:08 Предпочтительно с ShowAlways=True
А в чем смысл ставить ShowAlways в данном случае? Пустой AppId тоже имеет значение?
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Вроде все OBJ у меня скомпилились в 64 бита, но в самой Делфи (хотя я и взял модифированную версию от pepak) - аццкий ужос. Используются преобразования Pointer -> Cardinal + обычная арифметика + обратные преобразования...
Потихоньку переводил все это на промежуточную функцию, работающую через Inc... А потом как-то забросил.
Last edited by Pasha_ZZZ on Wed 07 Mar, 2018 12:31, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Wed 07 Mar, 2018 07:04я даже не уверен что оно работать будет без каких-либо артефактов
Я особо не тестировал, только смотрел AppId. За предупреждение спасибо.
Ariman wrote: Wed 07 Mar, 2018 09:41в чем смысл ставить ShowAlways в данном случае? Пустой AppId тоже имеет значение?
У меня сейчас есть необходимость для полутора дюжин установщиков понять и записать, как они будут прописываться в системный Uninstall (а ставить каждый из них мне, разумеется, совсем не хочется). Именно тут AppId играет определяющую роль, поэтому если он пустой, это желательно видеть явно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Pasha_ZZZ wrote: Wed 07 Mar, 2018 12:30аццкий ужос
Это да, есть такое. Там код шерстить надо основательно на тему совместимости с х64, помимо адаптации к другому компилятору.
Если мыслишка перевести это всё на FPC для мультиплатформы, но пока энтузиазма не хватает.
HaRT wrote: Wed 07 Mar, 2018 12:58 Именно тут AppId играет определяющую роль, поэтому если он пустой, это желательно видеть явно.
Добавил флажочек.

В аттаче версия с AppId. Пробуйте.
Attachments
innounp047_appid.rar
(136.13 KiB) Downloaded 69 times
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Ariman wrote: Wed 07 Mar, 2018 13:32Там код шерстить надо основательно на тему совместимости с х64, помимо адаптации к другому компилятору.
Я думаю, что бОльшую часть переделал, в 10.1 уже сравнительно мало ошибок вылазит.
Ну и тот самый Int64Em тоже разнес по разным файлам: ассемблерный, и для родной реализации. Включаю препроцессором по версии компилера.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Wed 07 Mar, 2018 13:32В аттаче версия с AppId. Пробуйте.
Спасибо, что добавили и собрали.
AppId показывается (на пустые/отсутствующие пока не натыкался). Однако мне гораздо удобнее было бы заходить в установщики и смотреть прямо в Фаре… Сложно ли добавить в InnoUnp и модуль для Observer'а?
Кстати, pepak . Может стоило бы сделать из неё rebuild.cmd?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Pasha_ZZZ wrote: Wed 07 Mar, 2018 13:40 Я думаю, что бОльшую часть переделал, в 10.1 уже сравнительно мало ошибок вылазит.
Если вдруг, то патчи принимаются :)
HaRT wrote: Wed 07 Mar, 2018 14:11 Сложно ли добавить в InnoUnp и модуль для Observer'а?
Как-то да, сложно. pepak много там изменений наделал. Чисто субъективно мне они не очень нравятся, а если я это себе заберу, то и поддерживать надо будет.
HaRT wrote: Wed 07 Mar, 2018 14:11 Может стоило бы сделать из неё rebuild.cmd?
Та как-то создавать ещё один батник, который просто вызовет подряд два других, выглядит мало полезно. :)
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Wed 07 Mar, 2018 19:20если я это себе заберу, то и поддерживать надо будет
Не могли бы вы хотя бы собрать релизный модуль правильными инструментами и выложить?
Ariman wrote: Wed 07 Mar, 2018 19:20создавать ещё один батник, который просто вызовет подряд два других, выглядит мало полезно
Полезно то, что человек сможет легко увидеть, как сделать пересборку (т.е. дело не в батниках, а в знании). Я реально убил много времени, прежде чем понял, что надо запустить prep.bat, и убил бы ещё полстолько, если бы решил без подсказки победить VERSIONINFO.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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