Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Взять ширину/высоту из имени файла при правке атрибутов

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Fri Nov 06, 2020 20:39    Post subject: Взять ширину/высоту из имени файла при правке атрибутов Reply with quote

Мне нужно заполнить теги "Ширина" и "Высота" wdx-плагина "jpg-comment" на основе имени файла. Но я не могу этого сделать - мне доступны не все значения, и имя файла к ним не относится.
Как я понял, это из-за типов значений. Значения могут быть строкой, числом, логическим, или каким-то ещё типом. Возможно это явление именуется не "типом данных значения", а другим термином. Если это так, извините за безграмотность.
Как можно решить мою проблему?
Искал, и не нашёл. Создал эту тему.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Fri Nov 06, 2020 21:08    Post subject: Reply with quote

Segmentum
Если речь идёт о диалоге изменения атрибутов (о плагинах в котором котором вам уже было сказано). то что как называется, несложно выяснить хотя бы из русской справки TC. Маловразумительный заголовок "Конвертация типов данных значений атрибутов", усугубляемый нанизыванием четырёх родительных падежей, явно имеет к ней слабое отношение. Желание "заполнить теги "Ширина" и "Высота" wdx-плагина "jpg-comment" на основе имени файла" лично мне элементарно непонятно. Скажем, про считывание значений одного плагина в поля другого плагина в справке сказано (и пример приведён), но что общего между именем и шириной/высотой? Таким образом, прежде обсуждения проблемы надо понять суть самой проблемы. Пока с этим сложно.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Sat Nov 07, 2020 00:01    Post subject: Reply with quote

Avada wrote:
то что как называется, несложно выяснить хотя бы из русской справки TC.

Но там ведь не сказано про различия полей данных, про невозможность заполнить числовое поле цифрами из поля-строки.

Avada wrote:
но что общего между именем и шириной/высотой?

Имя файла может содержать в себе цифры. Эти цифры можно извлечь с помощью диапазона, и использовать, как значение для ширины/высоты.

Avada wrote:
Желание "заполнить теги "Ширина" и "Высота" wdx-плагина "jpg-comment" на основе имени файла" лично мне элементарно непонятно

У меня есть несколько тысяч изображений, рабочих, то есть имеющих конкретное разрешение. Но, при этом, jpg comment видит в них полностью пустые поля ширины и высоты. Зато другая программа может читать эти данные, и у меня получилось вывести информацию об их разрешении в имена файлов. Дальше я бы мог работать через выделение по регулярным выражениям и изменение атрибутов, но диалог изменения атрибутов не даёт мне использовать имена файлов, как источник для ширины и высоты.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Nov 07, 2020 05:18    Post subject: Reply with quote

Segmentum wrote:
про невозможность заполнить числовое поле цифрами из поля-строки.

Из каких плагинов пробовали получить информацию? Первым приходит в голову ImgSize, по идее ещё TCMediaInfo должен, только детект-строку подпилить, - оба возвращают строку?
Segmentum wrote:
Имя файла может содержать в себе цифры. Эти цифры можно извлечь с помощью диапазона, и использовать, как значение для ширины/высоты.

С помощью PCREsearch можно вытаскивать часть имени файла, но что на выходе или можно ли явно указать тип данных не подскажу, надо смотреть.
Segmentum wrote:
...другая программа может читать эти данные, и у меня получилось вывести информацию об их разрешении в имена файлов. Дальше я бы мог...

Если память не изменяет, ExifTool может записать.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sat Nov 07, 2020 08:51    Post subject: Reply with quote

Segmentum
Пояснения приняты. Со своей стороны ограничиваюсь пока тем, что меняю заголовок на более пристойный и при этом конкретный.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Sat Nov 07, 2020 19:59    Post subject: Reply with quote

Skif_off wrote:
ImgSize

Работает. Спасибо

Ещё один вопрос: Знаете ли вы способ суммировать числа нескольких числовых полей метаданных, и выводить результат, как значение в столбце пользовательского режима просмотра? А так же проводить прочие математические операции, хотя бы самые простые (суммирование, вычитание, умножение, деление).
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Nov 07, 2020 21:39    Post subject: Reply with quote

Segmentum
Математика - это несложно, что угодно, в принципе, можно, только необходимо получить данные, а это посложнее.

Если super_wdx такого не умеет, то придётся делать самостоятельно:
1) WinScript Advanced со знакомым вам языком и утилитой от Loopback, способной вызывать wdx-плагины напрямую и писать результат в консоль - нужно прочитать и использовать (ссылка тут);
2) WinScript Advanced + только AutoIt: упомянутая выше утилита написана на AutoIt, но давно и не будет дружить с юникодом, поэтому можно попробовать использовать UDF, использовавшуюся для её написания, только позже доработанную. См. пост на Ru-Board, там пример с плагином xPDFSearch, собственно UDF - это глобальные константы (Global Const) в начале скрипта и три функции
_PHWDXPluginOpen()
_PHWDXPluginClose()
__PHWDXGetFieldValue()

после строки ";PluginHelpers.au3 (Loopback)".
3) Может сработать вариант посложнее: WinScript Advanced + winapiexec.

P.S. Не уверен, давно дело было, но вроде выкладывалась и утилита с поддержкой юникода.
Back to top
View user's profile Send private message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Thu Dec 10, 2020 17:58    Post subject: Reply with quote

Skif_off
В http://forum.ru-board.com/topic.cgi?forum=5&topic=48988&start=707&limit=1&m=1#1 ничего не понятно. Много элементов кода, назначение которых мне неизвестно. Где о них можно почитать?
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Dec 18, 2020 19:09    Post subject: Reply with quote

Segmentum
Если не знакомы с AutoIt, то попробуйте VBScript и утилиту uwdx.exe от Loopback (свежая версия тут, в архиве есть и актуальная версия PluginHelpers.au3), VBScript не требует чего-то дополнительного и работает на любой Windows, примеры запуска консольных утилит и чтения вывода находятся несложно. Имейте в виду, нумерация полей плагинов и units начинается с нуля (посчитать можно, например, в окне создания набора колонок).

Конкретные вопросы лучше, наверное, в теме WinScript Advanced задавать.
Back to top
View user's profile Send private message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Wed Dec 30, 2020 20:50    Post subject: Reply with quote

Skif_off
Все эти утилиты обращаются к wdx плагинам. Но встроенные в Total Commander данные (комментарий, случайное число, имя, расширение, и прочие) не принадлежат ни к одному из wdx-файлов (в папке с wdx плагинами нет такого файла). Без использования комментария с правкой отображаемого значения все эти скрипты бесполезны для меня.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Dec 31, 2020 02:31    Post subject: Reply with quote

Segmentum wrote:
Но встроенные в Total Commander данные (комментарий, случайное число, имя, расширение, и прочие) не принадлежат ни к одному из wdx-файлов.

Начали-то вы с wdx-плагинов...Smile
Всё перечисленное - не проблема на любом языке из числа поддерживаемых WinScript Advanced и, к слову, любой wdx-плагин получает лишь полное имя файла и индекс поля, всё остальное он делает самостоятельно.
- комментарий: получить из имени файла его каталог, найти в нём descript.ion, если есть - прочитать и искать нужное;
- случайное число: в любом языке программирования есть математические функции, получить случайное число из заданного диапазона не проблема;
- имя: всё после последнего разделителя каталогов (слэша) в полном имени файла (или готовые функции, делающие то же самое);
- расширение: всё после последней точки в имени файла (или готовые функции, делающие то же самое);
и прочее в том же духе (причём так же, как делает и сам ТС).

Ну да ладно, не уговаривкть же, рабочие варианты были озвучены (не считая очевидного - собственный, с самоваром и пряниками, плагин на компилируемых языках).
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group