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).

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 19 Jan, 2018 12:52

Latest post of the previous page:

Это больше вопрос удобства отладки и тестирования. На сайте либы есть список всех RFC, которые там реализованы, плюс список разного софта, который её использует. Если, скажем, девелопер этого кода сидит на линухе, то возиться с Far-ом ему будет не удобно.
Ну и достаточно часто на несовместимость с распространенным софтом реагируют охотнее, чем на несовместимость с более редким :)

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

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

Post by HaRT » Tue 06 Mar, 2018 16:54

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: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

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

Post by Ariman » Tue 06 Mar, 2018 20:38

HaRT wrote:
Tue 06 Mar, 2018 16:54
как вроде собирались.
Действительно, было дело. Завтыкал. Добавлю завтра.
HaRT wrote:
Tue 06 Mar, 2018 16:54
Я пытался собрать его самостоятельно, не неизбежно натыкался на ошибки вроде
Надо сначала сгенерировать часть файлов. Запустите prep.bat.

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

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

Post by HaRT » Tue 06 Mar, 2018 21:08

Ariman wrote:
Tue 06 Mar, 2018 20:38
Добавлю завтра.
Спасибо! (Предпочтительно с ShowAlways=True.)
Ariman wrote:
Tue 06 Mar, 2018 20:38
Запустите prep.bat.
Ага, я уже тоже допетрил. Однако результатом доволен не вполне, поэтому предпочту, чтобы выла штатная сборка модуля с этим изменением.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Smitis
Posts: 1573
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 32 times
Contact:

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

Post by Smitis » Tue 06 Mar, 2018 21:10

Если бы ещё кто-нибудь InnoUnp для x64 собрал...
Разум когда-нибудь победит.

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

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

Post by Ariman » Tue 06 Mar, 2018 21:17

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: 8716
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 81 times
Been thanked: 147 times

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

Post by HaRT » Tue 06 Mar, 2018 22:01

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: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

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

Post by Ariman » Wed 07 Mar, 2018 07:04

Ну тут я даже не уверен что оно работать будет без каких-либо артефактов. Я всё на D7 делаю, там должно собираться без дополнительных усилий. Судя по его ответу, pepak заставил прогу собираться в более новой версии с некоторыми танцами. Но что из этого получается даже не знаю.
Надо, наверное, заняться выравниванием строковых типов в сорцах, чтобы с новыми компиляторами проблем меньше было. Новые и старые компиляторы по разному понимают тип String. И оригинальный Inno Setup как раз этим пользуется, собирая юникондную и анси версии в разных версиях delphi, но с одними исходниками. А я, когда адаптировал появление юникода, опирался именно под то, как семерка работает. Плюс куча старого кода оставалась в проекте, со старых версий IS, когда про юникод ещё и не думали.

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 07 Mar, 2018 09:41

HaRT wrote:
Tue 06 Mar, 2018 21:08
Предпочтительно с ShowAlways=True
А в чем смысл ставить ShowAlways в данном случае? Пустой AppId тоже имеет значение?

Pasha_ZZZ
Posts: 80
Joined: Mon 12 Jun, 2006 14:58
Contact:

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

Post by Pasha_ZZZ » Wed 07 Mar, 2018 12:30

Вроде все 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: 8716
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 81 times
Been thanked: 147 times

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

Post by HaRT » Wed 07 Mar, 2018 12:58

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: 1233
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 26 times
Contact:

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

Post by Ariman » Wed 07 Mar, 2018 13:32

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 50 times

Pasha_ZZZ
Posts: 80
Joined: Mon 12 Jun, 2006 14:58
Contact:

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

Post by Pasha_ZZZ » Wed 07 Mar, 2018 13:40

Ariman wrote:
Wed 07 Mar, 2018 13:32
Там код шерстить надо основательно на тему совместимости с х64, помимо адаптации к другому компилятору.
Я думаю, что бОльшую часть переделал, в 10.1 уже сравнительно мало ошибок вылазит.
Ну и тот самый Int64Em тоже разнес по разным файлам: ассемблерный, и для родной реализации. Включаю препроцессором по версии компилера.

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

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

Post by HaRT » Wed 07 Mar, 2018 14:11

Ariman wrote:
Wed 07 Mar, 2018 13:32
В аттаче версия с AppId. Пробуйте.
Спасибо, что добавили и собрали.
AppId показывается (на пустые/отсутствующие пока не натыкался). Однако мне гораздо удобнее было бы заходить в установщики и смотреть прямо в Фаре… Сложно ли добавить в InnoUnp и модуль для Observer'а?
Кстати, pepak . Может стоило бы сделать из неё rebuild.cmd?
Фар есть инструмент, а не нянька. © 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 » Wed 07 Mar, 2018 19:20

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: 8716
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 81 times
Been thanked: 147 times

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

Post by HaRT » Wed 07 Mar, 2018 19:36

Ariman wrote:
Wed 07 Mar, 2018 19:20
если я это себе заберу, то и поддерживать надо будет
Не могли бы вы хотя бы собрать релизный модуль правильными инструментами и выложить?
Ariman wrote:
Wed 07 Mar, 2018 19:20
создавать ещё один батник, который просто вызовет подряд два других, выглядит мало полезно
Полезно то, что человек сможет легко увидеть, как сделать пересборку (т.е. дело не в батниках, а в знании). Я реально убил много времени, прежде чем понял, что надо запустить prep.bat, и убил бы ещё полстолько, если бы решил без подсказки победить VERSIONINFO.
Фар есть инструмент, а не нянька. © 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 08 Mar, 2018 11:56

HaRT wrote:
Wed 07 Mar, 2018 19:36
Не могли бы вы хотя бы собрать релизный модуль правильными инструментами и выложить?
Это лучше pepak-а пингануть. Я его модуль ни разу не собирал, даже не знаю какой компилятор он использует. Догадываюсь что что-то старше D7, я теми версиями и не пользуюсь.
HaRT wrote:
Wed 07 Mar, 2018 19:36
Полезно то, что человек сможет легко увидеть, как сделать пересборку (т.е. дело не в батниках, а в знании). Я реально убил много времени, прежде чем понял, что надо запустить prep.bat, и убил бы ещё полстолько, если бы решил без подсказки победить VERSIONINFO.
Хм. Я как-то даже не думал, что это у кого-то затык вызовет. Когда я разбирался как его собирать (оригинальный автор то не я), то prep.bat нашел быстро, название у него намекающее. :) Но замечание принимается, напишу инструкцию по сборке проекта на будущее.
Last edited by Ariman on Thu 08 Mar, 2018 11:56, edited 1 time in total.

Post Reply

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