Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):<searchtext> у AddCondition, как я понял, искать по маске со звёздочкой не умеет
Оно ищет вхождение заданной подстроки <searchtext> в любом месте заголовка/текста контрола. Во всяком случае, так задумывалось.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Может, не работает из-за того, что текст контрола динамический?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Может, не работает из-за того, что текст контрола динамический?
Да, скорее всего. Текст получается один раз при инициализации диалога. Предполагаю, что в этот момент он вообще может быть пустой или там какая-нибудь заглушка.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Ясно. Жаль. Ну, ОК. Когда придёт вдохновение, жду вариант с LngRead, GetCpuInfo и слегка пофиксеной справкой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Выложена новая версия.

2.0.6
+ добавлена команда LngRead для чтения строк из языковых файлов TC
- мелкие исправления в справке
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Что-то не хочет:

Код: Выделить всё

IniRead LNG %COMMANDER_INI% Configuration LanguageIni
LngRead IntAssoc 1722 '%COMMANDER_PATH%\Language\%LNG%'
Msgbox %IntAssoc%, %LNG%
Пробовал %LNG% и без указания пути. LNG в UTF-8 без ВОМ начинается с:
Russian (Русский)
codepage=65001
Кодировка файла определяется автоматически по значению в строке «codepage».
Т.е. принудительно на UTF-16 и UTF-8? Иначе как? К тому же codepage= не является обязательной строкой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Пробовал %LNG% и без указания пути.
А случайно LanguageIni не находится в переадресованной секции? В %LNG% что-то есть? Боюсь что ini-функции не поддерживают редиректы. В остальном код выше рабочий.
Flasher писал(а):Т.е. принудительно на UTF-16 и UTF-8? Иначе как? К тому же codepage= не является обязательной строкой.
Если codepage= не найдена, то предполагается что файл ANSI и конвертируется в юникод с использованием системной кодовой страницы. Для UTF-8 она обязательно должна быть, иначе в тотале кракозябры.

Вот что я упустил, так это то, что файлы могут быть в UTF-16. Надо проверку добавить.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):А случайно LanguageIni не находится в переадресованной секции?
Нет.
Loopback писал(а):В %LNG% что-то есть?
Разумеется. В сообщении выводится в заголовок. С этим и раньше проблем не было. Проблема исключительно в LngRead.
Loopback писал(а):Для UTF-8 она обязательно должна быть, иначе в тотале кракозябры.
Это если мы рассматриваем только языковой файл ТС. Но, полагаю, функция должна быть универсальной. Допустим, из плагинного lng нужно будет что-то выудить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а): Пролема исключительно в LngRead.
Тогда пока даже не знаю. Проверил все комбинации, в т.ч. и UTF-8, и без "codepage" - везде загружает.
Flasher писал(а):Но, полагаю, функция должна быть универсальной. Допустим, из плагинного lng нужно будет что-то считать.
Универсальной она не может быть, т.к. форматы разные, хоть и похожи. Плагинные файлы читаются IniRead.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Отбой. Стал проподить эксперименты с полными путями, и всё вдруг заработало и с переменными. Так и не понял, в чём был прикол.
Только толку то... AddCondition на переменную хоть бы хны:
AddDialog /CENTER:3 /SAVE:12 TDlgCustomColors
AddCondition /TEXT "" 0 "%IntAssoc%"
Loopback писал(а):т.к. форматы разные, хоть и похожи.
ОК. Согласен.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):AddCondition на переменную хоть бы хны
А, ну конечно. Переменные же в тексте не разворачиваются. Надо добавлять поддержку (как /EV и /EV- в других командах).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Но /EV- касается отключения переменных окружения, а не внутренних переменных плагина.
К тому же есть и другие команды, где нет /EV- в описании: CommandExec, IniDelete, IniRead, FileExist, MsgBox, RegRead, RegWrite, RegDelete, RegRead, все строчные. Но ряд из них точно поддерживает переменные. Тот же Msgbox <текст>.

Думал ты сразу сообразишь, когда я запросил lng-ридер.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Но /EV- касается отключения переменных окружения, а не внутренних переменных плагина.
Внутренних тоже, они же фактически равноценны. Думаю, стоит это уточнить в справке.
Flasher писал(а):К тому же есть и другие команды, где нет /EV- в описании
В параметрах команд, где принимается имена файлов или пути - переменные разворачиваются всегда, безальтернативно. Где просто какой-нибудь текст (например параметры запуска) - там есть /EV.

MsgBox исключение :)
Flasher писал(а):Думал ты сразу сообразишь, когда я запросил lng-ридер.
Это было уже три месяца назад, если ты заметил... А поддержку надо добавлять в ModifyDialogs.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Думаю, стоит это уточнить в справке.
Однозначно.
Loopback писал(а):Где просто какой-нибудь текст (например параметры запуска) - там есть /EV.
В IniRead и RegRead нет. Добавишь?
Loopback писал(а):MsgBox исключение
Вообще-то нет. Все 9 строчных функций поддерживают переменные без /EV.
Loopback писал(а):если ты заметил.
Не суть. Там связь была непосредственная с этим. Просто так от Lng-читалки толку бы не было. Не в переменные среды же записывать. ;)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):В IniRead и RegRead нет. Добавишь?
Если нет - надо добавить. Кстати, в ini* еще надо бы поддержку редиректов секций добавить.
Flasher писал(а):Вообще-то нет.
Ну ок, раз вопросов не возникало - значит такой вариант достаточен.
Flasher писал(а):Не суть. Там связь была непосредственная с этим. Просто так от Lng-читалки толку бы не было.
Да все это понятно, я к тому, что когда делаешь в комлексе - это одно, а когда с большим временным разрывом - совсем другое.
Ответить