Взять ширину/высоту из имени файла при правке атрибутов
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы

#1: Взять ширину/высоту из имени файла при правке атрибутов Author: Segmentum PostPosted: Fri Nov 06, 2020 20:39
    —
Мне нужно заполнить теги "Ширина" и "Высота" wdx-плагина "jpg-comment" на основе имени файла. Но я не могу этого сделать - мне доступны не все значения, и имя файла к ним не относится.
Как я понял, это из-за типов значений. Значения могут быть строкой, числом, логическим, или каким-то ещё типом. Возможно это явление именуется не "типом данных значения", а другим термином. Если это так, извините за безграмотность.
Как можно решить мою проблему?
Искал, и не нашёл. Создал эту тему.

#2:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Nov 06, 2020 21:08
    —
Segmentum
Если речь идёт о диалоге изменения атрибутов (о плагинах в котором котором вам уже было сказано). то что как называется, несложно выяснить хотя бы из русской справки TC. Маловразумительный заголовок "Конвертация типов данных значений атрибутов", усугубляемый нанизыванием четырёх родительных падежей, явно имеет к ней слабое отношение. Желание "заполнить теги "Ширина" и "Высота" wdx-плагина "jpg-comment" на основе имени файла" лично мне элементарно непонятно. Скажем, про считывание значений одного плагина в поля другого плагина в справке сказано (и пример приведён), но что общего между именем и шириной/высотой? Таким образом, прежде обсуждения проблемы надо понять суть самой проблемы. Пока с этим сложно.

#3:  Author: Segmentum PostPosted: Sat Nov 07, 2020 00:01
    —
Avada wrote:
то что как называется, несложно выяснить хотя бы из русской справки TC.

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

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

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

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

У меня есть несколько тысяч изображений, рабочих, то есть имеющих конкретное разрешение. Но, при этом, jpg comment видит в них полностью пустые поля ширины и высоты. Зато другая программа может читать эти данные, и у меня получилось вывести информацию об их разрешении в имена файлов. Дальше я бы мог работать через выделение по регулярным выражениям и изменение атрибутов, но диалог изменения атрибутов не даёт мне использовать имена файлов, как источник для ширины и высоты.

#4:  Author: Skif_off PostPosted: Sat Nov 07, 2020 05:18
    —
Segmentum wrote:
про невозможность заполнить числовое поле цифрами из поля-строки.

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

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

Если память не изменяет, ExifTool может записать.

#5:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Nov 07, 2020 08:51
    —
Segmentum
Пояснения приняты. Со своей стороны ограничиваюсь пока тем, что меняю заголовок на более пристойный и при этом конкретный.

#6:  Author: Segmentum PostPosted: Sat Nov 07, 2020 19:59
    —
Skif_off wrote:
ImgSize

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

Ещё один вопрос: Знаете ли вы способ суммировать числа нескольких числовых полей метаданных, и выводить результат, как значение в столбце пользовательского режима просмотра? А так же проводить прочие математические операции, хотя бы самые простые (суммирование, вычитание, умножение, деление).

#7:  Author: Skif_off PostPosted: Sat Nov 07, 2020 21:39
    —
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. Не уверен, давно дело было, но вроде выкладывалась и утилита с поддержкой юникода.

#8:  Author: Segmentum PostPosted: Thu Dec 10, 2020 17:58
    —
Skif_off
В http://forum.ru-board.com/topic.cgi?forum=5&topic=48988&start=707&limit=1&m=1#1 ничего не понятно. Много элементов кода, назначение которых мне неизвестно. Где о них можно почитать?

#9:  Author: Skif_off PostPosted: Fri Dec 18, 2020 19:09
    —
Segmentum
Если не знакомы с AutoIt, то попробуйте VBScript и утилиту uwdx.exe от Loopback (свежая версия тут, в архиве есть и актуальная версия PluginHelpers.au3), VBScript не требует чего-то дополнительного и работает на любой Windows, примеры запуска консольных утилит и чтения вывода находятся несложно. Имейте в виду, нумерация полей плагинов и units начинается с нуля (посчитать можно, например, в окне создания набора колонок).

Конкретные вопросы лучше, наверное, в теме WinScript Advanced задавать.

#10:  Author: Segmentum PostPosted: Wed Dec 30, 2020 20:50
    —
Skif_off
Все эти утилиты обращаются к wdx плагинам. Но встроенные в Total Commander данные (комментарий, случайное число, имя, расширение, и прочие) не принадлежат ни к одному из wdx-файлов (в папке с wdx плагинами нет такого файла). Без использования комментария с правкой отображаемого значения все эти скрипты бесполезны для меня.

#11:  Author: Skif_off PostPosted: Thu Dec 31, 2020 02:31
    —
Segmentum wrote:
Но встроенные в Total Commander данные (комментарий, случайное число, имя, расширение, и прочие) не принадлежат ни к одному из wdx-файлов.

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

Ну да ладно, не уговаривкть же, рабочие варианты были озвучены (не считая очевидного - собственный, с самоваром и пряниками, плагин на компилируемых языках).



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group