1 (изменено: equipment66, 2013-02-24 14:37:37)

Тема: AHK: знак переноса строки в тексте из переменной в контролах

Доброго всем времени суток,

Есть GUI AHK, текст в котором отображается на разных языках, в зависимости от настроек пользователя. Текст подгружается командой типа


FileReadLine, SomeControlText, ControlTextRU.txt, 1 
...
GuiControl, , SomeControlText, %SomeControlText%

Вопрос: как организовать перенос строки в произвольном месте в контроле для текста, подгружаемого из переменной?
То есть, есть ли способ прописать в строке что то вроде `n или  CR+LF так, чтобы при посылке из переменной в контрол скрипт понимал это как перенос строки а не набор литеральных символов?

Разбивка текста по раздельным переменным и посылка в контрол способом


GuiControl, , SomeControlText, %SomeControlText1%`n%SomeControlText2%...

самоочевидна , но она сильно "раздувает" код. Меня интересует есть ли альтернативный способ. В литературе пока ничего не нашел.

Заранее всем спасибо

2 (изменено: YMP, 2013-02-24 14:30:24)

Re: AHK: знак переноса строки в тексте из переменной в контролах

Не понятно, в какой строке вы хотите прописывать `n.

3 (изменено: equipment66, 2013-02-24 15:03:53)

Re: AHK: знак переноса строки в тексте из переменной в контролах

YMP пишет:

Не понятно, в какой строке вы хотите прописывать `n.


Если в теле скрипта прописать


GuiControl, , SomeControlText, Первая строка `n Вторая строка

то в контроле отобразится следующее:

*************
Первая строка
Вторая строка
*************

В случае, если то же текст "Первая строка `n Вторая строка" прописать в  первой строке ControlTextRU.txt , то код:


FileReadLine, SomeControlText, ControlTextRU.txt, 1 
...
GuiControl, , SomeControlText, %SomeControlText%

В контроле отображает:

***************************
Первая строка `n Вторая строка
***************************
То есть, `n в таком случае трактуются как литеральные символы, а не перенос строки.
Меня интересует, можно ли в ControlTextRU.txt прописать какую то команду, которая при посылке текста в контрол трактовалась бы как перенос строки? И чтобы текст в контроле отображалось как в первом варианте?

4

Re: AHK: знак переноса строки в тексте из переменной в контролах

Текст из файла не интерпретируется, а помещается в переменную как есть. Так что, видимо, только заменять в считанной строке все `n на реальные переводы строки. Например, так:


StringReplace, SomeControlText, SomeControlText, ``n, `n, All

5 (изменено: serzh82saratov, 2013-02-24 15:20:24)

Re: AHK: знак переноса строки в тексте из переменной в контролах

equipment66 пишет:

"раздувает" код

FileReadLine, SomeControlText, ControlTextRU.txt, 1
GuiControl, Text, SomeControlText, % RegExReplace( SomeControlText, "``n", "`n")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: знак переноса строки в тексте из переменной в контролах

YMP пишет:

Текст из файла не интерпретируется, а помещается в переменную как есть. Так что, видимо, только заменять в считанной строке все `n на реальные переводы строки. Например, так:


StringReplace, SomeControlText, SomeControlText, ``n, `n, All

Спасибо, все прекрасно работает.

YMP пишет:

Текст из файла не интерпретируется, а помещается в переменную как есть.

Пока искал способ, методом научного тыка обнаружил, что по крайней мере знак "&" при посылке из переменной в контрол не отображается, то есть как то интерпретируется. Вероятно, какие то задатки к интерпретации все же существуют.  Или планировались.