Страница 96 из 243
Добавлено: Пт июн 14, 2019 22:13
Loopback
Flasher писал(а):<searchtext> у AddCondition, как я понял, искать по маске со звёздочкой не умеет
Оно ищет вхождение заданной подстроки <searchtext> в любом месте заголовка/текста контрола. Во всяком случае, так задумывалось.
Добавлено: Пт июн 14, 2019 22:52
Flasher
Loopback
Может, не работает из-за того, что текст контрола динамический?
Добавлено: Пт июн 14, 2019 23:59
Loopback
Flasher писал(а):Может, не работает из-за того, что текст контрола динамический?
Да, скорее всего. Текст получается один раз при инициализации диалога. Предполагаю, что в этот момент он вообще может быть пустой или там какая-нибудь заглушка.
Добавлено: Сб июн 15, 2019 00:04
Flasher
Loopback
Ясно. Жаль. Ну, ОК. Когда придёт вдохновение, жду вариант с LngRead, GetCpuInfo и слегка пофиксеной справкой.
Добавлено: Пт июн 21, 2019 16:20
Loopback
Выложена новая версия.
2.0.6
+ добавлена команда LngRead для чтения строк из языковых файлов TC
- мелкие исправления в справке
Добавлено: Пт июн 21, 2019 18:28
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= не является обязательной строкой.
Добавлено: Пт июн 21, 2019 20:24
Loopback
Flasher писал(а):Пробовал %LNG% и без указания пути.
А случайно LanguageIni не находится в переадресованной секции? В %LNG% что-то есть? Боюсь что ini-функции не поддерживают редиректы. В остальном код выше рабочий.
Flasher писал(а):Т.е. принудительно на UTF-16 и UTF-8? Иначе как? К тому же codepage= не является обязательной строкой.
Если codepage= не найдена, то предполагается что файл ANSI и конвертируется в юникод с использованием системной кодовой страницы. Для UTF-8 она обязательно должна быть, иначе в тотале кракозябры.
Вот что я упустил, так это то, что файлы могут быть в UTF-16. Надо проверку добавить.
Добавлено: Пт июн 21, 2019 20:30
Flasher
Loopback писал(а):А случайно LanguageIni не находится в переадресованной секции?
Нет.
Loopback писал(а):В %LNG% что-то есть?
Разумеется. В сообщении выводится в заголовок. С этим и раньше проблем не было. Проблема исключительно в LngRead.
Loopback писал(а):Для UTF-8 она обязательно должна быть, иначе в тотале кракозябры.
Это если мы рассматриваем только языковой файл ТС. Но, полагаю, функция должна быть универсальной. Допустим, из плагинного lng нужно будет что-то выудить.
Добавлено: Пт июн 21, 2019 20:45
Loopback
Flasher писал(а): Пролема исключительно в LngRead.
Тогда пока даже не знаю. Проверил все комбинации, в т.ч. и UTF-8, и без "codepage" - везде загружает.
Flasher писал(а):Но, полагаю, функция должна быть универсальной. Допустим, из плагинного lng нужно будет что-то считать.
Универсальной она не может быть, т.к. форматы разные, хоть и похожи. Плагинные файлы читаются IniRead.
Добавлено: Пт июн 21, 2019 21:08
Flasher
Loopback
Отбой. Стал проподить эксперименты с полными путями, и всё вдруг заработало и с переменными. Так и не понял, в чём был прикол.
Только толку то... AddCondition на переменную хоть бы хны:
AddDialog /CENTER:3 /SAVE:12 TDlgCustomColors
AddCondition /TEXT "" 0 "%IntAssoc%"
Loopback писал(а):т.к. форматы разные, хоть и похожи.
ОК. Согласен.
Добавлено: Пт июн 21, 2019 23:03
Loopback
Flasher писал(а):AddCondition на переменную хоть бы хны
А, ну конечно. Переменные же в тексте не разворачиваются. Надо добавлять поддержку (как /EV и /EV- в других командах).
Добавлено: Пт июн 21, 2019 23:42
Flasher
Loopback
Но /EV- касается отключения переменных окружения, а не внутренних переменных плагина.
К тому же есть и другие команды, где нет /EV- в описании: CommandExec, IniDelete, IniRead, FileExist, MsgBox, RegRead, RegWrite, RegDelete, RegRead, все строчные. Но ряд из них точно поддерживает переменные. Тот же Msgbox <текст>.
Думал ты сразу сообразишь, когда я
запросил lng-ридер.
Добавлено: Пн июн 24, 2019 11:44
Loopback
Flasher писал(а):Но /EV- касается отключения переменных окружения, а не внутренних переменных плагина.
Внутренних тоже, они же фактически равноценны. Думаю, стоит это уточнить в справке.
Flasher писал(а):К тому же есть и другие команды, где нет /EV- в описании
В параметрах команд, где принимается имена файлов или пути - переменные разворачиваются всегда, безальтернативно. Где просто какой-нибудь текст (например параметры запуска) - там есть /EV.
MsgBox исключение
Flasher писал(а):Думал ты сразу сообразишь, когда я запросил lng-ридер.
Это было уже три месяца назад, если ты заметил... А поддержку надо добавлять в ModifyDialogs.
Добавлено: Пн июн 24, 2019 12:40
Flasher
Loopback писал(а):Думаю, стоит это уточнить в справке.
Однозначно.
Loopback писал(а):Где просто какой-нибудь текст (например параметры запуска) - там есть /EV.
В IniRead и RegRead нет. Добавишь?
Loopback писал(а):MsgBox исключение
Вообще-то нет. Все 9 строчных функций поддерживают переменные без /EV.
Loopback писал(а):если ты заметил.
Не суть. Там связь была непосредственная с этим. Просто так от Lng-читалки толку бы не было. Не в переменные среды же записывать.

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