Строки
Строки в языке определяются с помощью пары двойных кавычек. Если подряд идут две строки, то они будут объединены в одну строку. По умолчанию, константные строки не могут быть определены в кодировке Unicode. В Gentee есть Unicode строки ( ustr ) и вы можете использовать кодировку UTF-8 в константных строках для последующей конвертации в Unicode. Простые строковые переменные определяются указанием типа str.
"Это простая строка
из двух строчек."
Имеется служебный символ '\', который позволяет выполнять различные действия или производить замены. Ниже приведен список команд со служебным символом.
\\ Вывод служебного символа.
"c:\\temp\\readme.txt"
\" Вывод двойных кавычек.
"This is \"Super Team\"!"
\n Перевод строки, код 0x0A.
\r Возврат каретки, код 0x0D.
\t Горизонтальная табуляция, код 0x09.
\l Конец строки - комбинация \r\n. Может быть полезным при выводе в текстовый файл.
\0XX Комбинация служебного символа с нулём, а затем число-байт в шестнадцатеричном виде позволяет вставить в строку любой символ с соответствующим кодом от 0 до 255.
\# Удаление предшествующих переводов строки или пробелов и знаков табуляции. Удаляются только или переводы строки или пробелы и знаки табуляции в зависимости от того, что стояло впереди.
\ 0xd 0xa Если строка просто заканчивается служебным символом, то последующие символы перевода строки будут удалены. Это удобно использовать для разбивки слишком длинной строки.
"Line 1\r\nLine 2\l Line \033 \
Line 3 too"
\*...*\ Комментарии. Вы можете вставлять любые комментарии внутрь строки.
\$macro$ Вставка в строку значения макроса препроцессора. Последний знак '$' является необязательным если далее следует не буква и не цифра.
"Name: \$NAME Company: \$COMPANY \*Users name and company*\"'
\( выражение ) Вставляется результат выражения. Внутри круглыx скобок должно быть выражение любого типа, имеющего метод конвертации в строку.
\< имя файла > Вставляется содержимое указанного файла. Внутри угловых скобок должно быть указано имя файла без учета служебного символа.
"5 + 10 = \( 5 + 10 ) Variable = \( var )\l \<c:\temp\my.txt>"
\[idname] Если у вас длинная строка и вы хотите в каком-то фрагменте отключить служебный символ, то укажите в квадратных скобках любую комбинацию любых символов. Можно даже не указывать ни одного дополнительного символа. В дальнейшем для включения служебного символа укажите эту же комбинацию в квадратных скобках.
"\[] \k\l\m [] \$NAME$ \[.S] \o\p\r [.S] \$COMPANY"
Кроме обычной строки есть еще так называемая макрострока. У нее перед кавычками стоит знак '$'. Эта строка отличается от обычной строки тем, что у нее нет служебного символа, но она подставляет макросы которые встречаются внутри. Этот тип строки очень удобен при указании путей файлов.
define {
mypath = $"c:\myfolder\subfolder"
myname = "application"
myext = "exe"
}
...
s = $"$mypath\$myname$123.$myext"
s1 = "\$mypath\\\$myname$123.\$myext"
// s = s1 = c:\myfolder\subfolder\application123.exe