easy.math.qsp v. 3.1.0
Вспомогательные функции
em.str.getWord
Функция из строки вида aaa|bbb|ccc|...|yyy|zzz
получает подстроку, стоящую в указанной позиции. Подстроки помещаются между разделителями. По умолчанию разделителем является вертикальная черта.
$args[
- строка
0
] args[
- позиция, из которой нужно получить подстроку.
1
]$args[
- разделитель. По умолчанию в качестве разделителя используется вертикальная черта.
2
]
Результат работы функции:
Заготовленная строка:
Примеры работы функции:
@em.str.getWord($text,5) & !@ "Май"
@em.str.getWord($text,8) & !@ "Август"
@em.str.getWord($text,11) & !@ "Ноябрь"
@em.str.getWord($text,14) & !@ "Декабрь"
@em.str.getWord($text,2,"ь") & !@ "|Феврал"
@em.str.getWord($text,5,"р") & !@ "ель|Май|Июнь|Июль|Август|Сентяб"
@em.str.getWord($text,8,"е") & !@ "кабрь"
@em.str.getWord($text,11,"я") & !@ "брь|Декабрь"
@em.str.getWord($text,14,"а") & !@ "брь"
@em.str.getWord($text,3,"брь") & !@ "|Ноя"
em.tag.getNum
Получает содержимое одиночного тега[1] из строки.
$args[
- текст, из которого нужно извлечь содержимое тега.
0
]$args[
- корень тега. Можно указать ключ 1
]/h
, чтобы вести проверку, соответствуют ли символы шестнадцатеричному числу; в этом случае, если содержимое тега не соответствует шестнадцатеричному числу, функция вернёт пустую строку.
Результат - только текстовое значение.
Примеры одиночных тегов с корнем tag
:
tag=#non_space_symbols
<tag:any symbols>
[tag:any symbols]
{tag:any symbols}
(tag:any symbols)
tag="any symbols"
tag='any symbols'
Первые два типа записей не должны содержать пробельных символов, остальные - могут. Тем не менее не рекомендуется использовать данную функцию для извлечения данных с пробельными символами.
Результат работы функции:
Заготовленная строка:
Извлечённые значения:
@em.tag.getNum($text,'cord') & !@ '68'
@em.tag.getNum($text,'log') & !@ "непробельные_символы"
@em.tag.getNum($text,'color') & !@ "ff8899"
@em.tag.getNum($text,'tag') & !@ "многа букав"
@em.tag.getNum($text,'tag/h') & !@ не выведет ничего
@em.tag.getNum($text,'color/h') & !@ "ff8899"
em.tag.getCont
Получает содержимое двойного тега из строки.
$args[
- текст, содержащий тег.
0
]$args[
- корень тега.
1
]
Результатом может быть только текстовое значение.
Примеры двойных тегов с корнем tag
:
[tag:any symbols:tag]
(tag:any symbols:tag)
<tag:any symbols:tag>
[tag]any symbols[/tag]
<tag>any symbols</tag>
Результат работы функции:
Заготовленная строка:
Извлечённые значения:
@em.tag.getCont($text,'cord') & !@ "странный и непонятный текст"
@em.tag.getCont($text,'log') & !@ "п р о б е л ь н ы е и непробельные символы"
@em.tag.getCont($text,'color') & !@ "ff8899"
@em.tag.getCont($text,'tag') & !@ "многа букав"
em.maxVar
Возвращает название переменной, содержащей максимальное значение.
$args[
- имена переменных, или точные указания на ячейки массивов, перечисленные списком через запятую
0
]$args[
... 1
]$args[
- каждый аргумент — отдельное имя переменной, или указание на конкретную ячейку массива, либо управляющая конструкция.
8
]
Пример:
В $args[
может быть не одно, а несколько имён переменных или конкретных ячеек массива, разделённых запятыми:0
]
При указании текстовых индексов для элементов массива в таком списке недопустимо, чтобы в этих текстовых индексах присутствовали запятые. Для указания таких ячеек массива используйте аргументы с $args[
по 1
]$args[
, либо замените в индексах запятые на 8
]%,%
.
Если нужно провести поиск максимального среди всех значений массива, можно использовать ключ /arr
, чтобы указать, что данное имя является не просто именем переменной (то есть нулевой ячейки массива), но и всего массива.
В последнем аргументе (номер аргумента при этом не важен) можно использовать управляющие конструкции. Аргументы после аргумента с управляющими конструкциями будут проигнорированы.
Список управляющих конструкций:
[list]
- в этом режиме функция возвращает список всех имён переменных, содержащих максимальное значение, если это значение присутствует во всех этих переменных.[max]
- в этом режиме функция производит поиск максимального значения. Режим по умолчанию, т.е. можно не указывать.[min]
- в этом режиме функция производит поиск минимального значения. Имеет приоритет над[max]
, если указаны оба.
Результат работы функции:
old_mass[1]=136
old_mass[2]=788
old_mass[3]=177
old_mass[4]=75
old_mass[5]=97
old_mass[6]=649
old_mass[7]=75
@em.maxVar('old_mass/arr')
! 'old_mass[0]'
@em.maxVar('old_mass/arr','[list]')
! 'old_mass[0]
old_mass[2]'
@em.maxVar('old_mass/arr','[list][min]')
! 'old_mass[4]
old_mass[7]'
em.minVar
Возвращает название переменной, содержащей минимальное значение.
$args[
- имена переменных, или точные указания на ячейки массивов, перечисленные списком через запятую
0
]$args[
... 1
]$args[
- каждый аргумент — отдельное имя переменной, или указание на конкретную ячейку массива, либо управляющая конструкция.
8
]
Пример:
В $args[
может быть не одно, а несколько имён переменных или конкретных ячеек массива, разделённых запятыми:0
]
При указании текстовых индексов для элементов массива в таком списке недопустимо, чтобы в этих текстовых индексах присутствовали запятые. Для указания таких ячеек массива используйте аргументы с $args[
по 1
]$args[
, либо замените в индексах запятые на 8
]%,%
.
Если нужно провести поиск минимального среди всех значений массива, можно использовать ключ /arr
, чтобы указать, что данное имя является не просто именем переменной (то есть нулевой ячейки массива), но и всего массива.
В последнем аргументе (номер аргумента при этом не важен) можно использовать управляющие конструкции. Аргументы после аргумента с управляющими конструкциями будут проигнорированы.
Список управляющих конструкций:
[list]
- в этом режиме функция возвращает список всех имён переменных, содержащих минимальное значение, если это значение присутствует во всех этих переменных.
Результат работы функции:
old_mass[1]=136
old_mass[2]=788
old_mass[3]=177
old_mass[4]=75
old_mass[5]=97
old_mass[6]=649
old_mass[7]=75
@em.minVar('old_mass/arr')
! 'old_mass[4]'
@em.minVar('old_mass/arr','[list]')
! 'old_mass[4]
old_mass[7]'
@em.minVar('old_mass/arr','[list][max]') & ! в данном случае поиск максимального работать не будет!!!
! 'old_mass[4]
old_mass[7]'
Данная функция является надстройкой над функцией em.maxVar
.
em.var.getType
Функция получает тип переменной.
$args[0
]
- имя переменной/массива. Можно указывать название непосредственно переменной/массива, или конкретную ячейку масссива.
$result
- в результате функция возвращает строку:
-
'both'
- этот результат означает, что существуют как текстовое, так и числовое значение для указанной переменной. В плеерах версии 5.7.0 и ниже в одном массиве под одним и тем же индексом можно хранить как текстовое так и числовое значение. Например:$varname[1]='text' & varname[1]=234В этом случае функция вернёт строку'both'
'string'
- этот результат означает, что переменная содержит только текстовое значение отличное от значения переменной по умолчанию.'number'
- этот результат означает, что переменная содержит только числовое значение отличное от значения переменной по умолчнаию.'empty'
- этот результат означает, что переменная не создана, либо содержит значение по умолчанию, текстовое и числовое.
Вызов:
@em.var.getType('array["string"]')
Символ "$"
перед названием переменной при определении типа роли не играет.
Проверить тип переменных args
и result
с помощью данной функции нельзя, однако можно проверить тип любой другой локальной переменной.
Примеры:
number=123
$varname[0]='text' & varname[0]=123
$emptyvar[0]=''
emptyvar[1]=0
$tuple=(1,2,3)
! результат работы функции
@em.var.getType('$string') & !@ 'string'
@em.var.getType('number') & !@ 'number'
@em.var.getType('$number') & !@ 'number'
@em.var.getType('string') & !@ 'string'
@em.var.getType('$varname') & !@ 'number'
@em.var.getType('$emptyvar[0]') & !@ 'empty'
@em.var.getType('emptyvar[1]') & !@ 'empty'
@em.var.getType('$tuple') & !@ 'tuple'
em.deRGB
Функция обратная функции rgb, встроенной в QSP. То есть данная функция наоборот: переводит числовой код цвета в три составляющие.
args[0
]
- числовой код цвета.
$args[1
]
- управляющая конструкция. При желании вы можете передать в этом параметре ключ '\wa'
, чтобы в результат была включена составляющая альфа-канала.
$result
или result
- функция возвращает все три составляющие в виде кортежа (если указать хотя бы два управляющих слова, или не указать ни одного), или возвращает в виде числа одну составляющую (если указать одну управляющую конструкцию).
Результат работы функции:
seablue=rgb(0,98,98) & !@ #006262
red,green,blue = @em.deRGB(yellow)
*pl "<<red>>,<<green>>,<<blue>>" & !@ 255,255,0
red,green,blue = @em.deRGB(seablue)
*pl "<<red>>,<<green>>,<<blue>>" & !@ 0,98,98
knaki=rgb(240,230,140,100)
red,green,blue = @em.deRGB(knaki)
*pl "<<red>>,<<green>>,<<blue>>" & !@ 240,230,140
red,green,blue,alpha = @em.deRGB(knaki,'/wa')
*pl "<<red>>,<<green>>,<<blue>>,<<alpha>>" & !@ 240,230,140,100
knaki=rgb(240,230,140,237)
red,green,blue = @em.deRGB(knaki)
*pl "<<red>>,<<green>>,<<blue>>" & !@ 240,230,140
red,green,blue,alpha = @em.deRGB(knaki,'/wa')
*pl "<<red>>,<<green>>,<<blue>>,<<alpha>>" & !@ 240,230,140,237
Примечания:
[1] Теги - это метки в тексте, которые отмечают некоторую информацию. В контексте данного руководства и связанных с библиотекой программ различаются одиночные и двойные теги. Одиночные теги отличаются тем, что не требуют закрытия. Двойные теги состоят из открывающего и закрывающего элементов. Содержимое тегов - это информация, которую они отмечают, или выделяют. Пример: <p>Текст параграфа</p>
- здесь мы видим открывающий и закрывающий элементы тега 'p'
, между которыми размещён текст. В контексте данного руководства 'p'
— это корень тега, — а текст, размещённый между элементами тега, называется содержимым тега.
Aleks Versus'Easy Libraries'2013-2025
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2025