Text Write

Сообщение Re: Text Write
» 03 фев 2013, 02:27

Это выражение возвращает символ, идущий под номером равным значению переменной Write.
Сначала происходит взятие левой части строки:
left(TextBox.Text, len(TextBox.Text)-Text.Write)
Т.е. первый аргумент - TextBox.Text - это та строка из которой мы будем брать левую часть
второй аргумент - len(TextBox.Text)-Text.Write - это количество символов, которые останутся слева






 Примеры





Выражение left("Привет, мир!!!", 7) - вернет "Привет,"
left("Привет, мир!!!", 3) - вернет "При"
left("ScirraConstruct2", 1) вернет "S"




Допустим в объекте TextBox записан следующий текст: "К нам едет ревизор!"
тогда вместо TextBox.Text будет записано "К нам едет ревизор!"
вместо len(TextBox.Text) будет 19 (длина строки в символах)
если Text.Write = 18, тогда len(TextBox.Text)-Text.Write вернет 19-18=1,
и тогда выражение left(TextBox.Text, len(TextBox.Text)-Text.Write) будет эквивалентно
left("К нам едет ревизор!", 19-18) т.е. "К"

если Text.Write = 16, тогда это выражение будет таким: left("К нам едет ревизор!", 19-16) т.е. "К н"
и т.д.

соотвественно right(String, Number) возвращает Number количество символов справа строки String.






 Примеры





right("Багровый закат.", 6) = "закат."
right("Багровый закат.", 8) = "й закат."
right("Багровый закат.", 2) = "т."




Итак, вернемся к примеру, когда Text.Write = 18,
когда left(TextBox.Text, len(TextBox.Text)-Text.Write) возвращает нам "К".
Теперь смотрим на внешнюю часть выражения (напомню, выражение было таким - right(left(TextBox.Text, len(TextBox.Text)-Text.Write), 1))
Получается, что вместо right(left(TextBox.Text, len(TextBox.Text)-Text.Write), 1) выделенного можно подписать "К". Тогда получается следующее выражение: right("К", 1), которое возвращает нам "К".

Теперь, вариант, когда Text.Write = 16.
left(TextBox.Text, len(TextBox.Text)-Text.Write) = "К н"
тогда все выражение будет таким: right("К н", 1) т.е. "н".
Если посмотреть, то получится, что все это выражение возвращает символ, идущий под номером = Text.Write начиная слева, а поскольку в исходнике это выражение стоит в цикле, то от переменной Write с каждым витком цикла отнимается 1, а значит номер символа с каждым витком цикла увеличивается (у нас ведь len(...)-Text.Write), а не просто Text.Write)

Ну вот как-то примерно так, надеюсь теперь стало немного понятнее :biggrin:
Аватара пользователя

Игродел
Сообщений: 401
Я тут с 08 янв 2013, 17:46
Откуда: Мск