SIN
COS
STRLEN - длина строки
LEN - длина строки
STR(число, кол-во знаков после запятой) - число в строку
STR(число) - число в строку
VAL - строку в число
INT(число) - == floor()
IsString(аргумент) - TRUE, если аргумент - строка
IsNumber(аргумент) - TRUE, если аргумент - число
- ^^ полезны, например для определени типа переменной FatalError
IsArray
IsClass
StrToMoney(строка) - возвр. число, соотв. строке денег
MoneyToStr(число_денег, ширина_ячейки, выравнивание, знаков_после_запятой)
Date(строка) - возвр. число, соответствующее заданной дате. Формат строки: "dd/mm/yyyy" или "d/m/yy", главное, чтоб не было пробелов.
Date(день, месяц, год) - то же самое. Возвращенная дата - число дней с 30/12/1899
DateToStr(дата_как_число) - вернуть строку, соотв. дате
DateToStr(дата_как_число, ширина) - если ширина 8, будет dd/mm/yy, если >=10 dd/mm/yyyy. Если <8 - будут звездочки.
Day(дата_как_число) - вернуть день данной даты
Month(дата_как_число)
Year(дата_как_число)
IsLeapYear(год) - true, если год - високосный
FormatStr(строка,ширина)
FormatStr(строка,ширина,не_показывать_точки) - урезать/расширить строку до данной ширины. Если строка длиннее - последние 3 символа будут "...", если не_показывать_точки==false или опущено.
LTrim - убрать пробелы слева
RTrim - справа
Trim - слева и справа
Left(строка,число букв) - как в Basic
Right(строка,число букв)
Mid(строка, позиция, число букв) - позиция считается от 0
_______________________________________________________
(Просто перепечатываю один из файлов документации, которые оставил автор скриптового модуля)
Язычок:
Один оператор в строке!!! перед оператором может быть метка. Метка только одна на строке.
Булевские операторы:
Code:
AND или &&
OR или ||
NOT
<, >, <=, >=, <>
Есть поддержка рекурсии.
\ - продолжение строчки переходит на следующую, перед \ должен стоять пробел!!! Нельзя пихать в середину слова!!! Да и вообще, лучше не использовать...
# - комментарий до конца строки. Так же можно использовать ';' - как в ассемблере.
Code:
VAR переменная1, переменная2...
- объявление переменных. Переменные нетипизированы, вначале имеют неопределенный тип. Переменные - буквы (в т.ч. русские), цифры, _. Без учета регистра.
Объявление переменной типа класс:
Code:
VAR переменная = Имя_класса()
переменная.Create() - вызов конструктора
переменная.Destroy() - вызов деструктора
Задание массива
Code:
DIM массив[размер], массив[размер]...
Обращение к элементам: имя_массива[номер_элемента]. Нельзя писать имя_массива1 = имя_массива2 для присвоения содержимого одного массива другому.
Обращение к отдельным буквам в строке - так же, как к эл-там массива:
переменная[номер_буквы]. Номер - от 0, в случае выхода за конец строки - ошибка.
Замечания по поводу массивов
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!!. Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом. Возвращать массивы из функций НЕЛЬЗЯ!!!
Code:
SUB имя_функции
<тело функции>
RETURN выражение
ENDSUB
или:
Code:
SUB имя_функции (параметр1, параметр2...)
<тело функции>
ENDSUB
- объявление функции.
Вызов функции:
Code:
имя_функции (параметры)
переменная = имя_функции (параметры)
SAFECALL имя_функции (параметры)
переменная = SAFECALL имя_функции (параметры)
Если указано слово SAFECALL, то в случае, если функция вернула ошибку, значение ошибки присваивается глобальной псевдо-переменной FATALERROR и интерпретатор продолжает выполнение скрипта. Если не написано SAFECALL, скрипт прервется по ошибке. В последнем примере значение переменной в случае ошибки будет равно значению FATALERROR.
(прим.Yoko: забудьте про SAFECALL, оно вам не надо)Code:
IF условие THEN
<операторы>
ENDIF
или:
Code:
IF условие THEN
<операторы>
ELSE
<операторы>
ENDIF
- условные операторы
Code:
имя_метки:
- объявление метки
Code:
GOTO имя_метки
- переход. НЕЛЬЗЯ делать goto за пределы циклов!!! Будут глюки!!!
Code:
переменная = выражение
- присвоение
Code:
REPEAT
команды
UNTIL условие
- цикл. Выполняется пока условие не станет истинным (т.е. пока условие ложно). Команды выполняются по крайней мере один раз.
Code:
WHILE условие
команды
WEND
- цикл. Выполняется, пока условие истинно. На каждый WHILE должен быть только один WEND в продедуре. т.е. конструкции вида:
Code:
IF условие THEN
WEND
ENDIF
НЕДОПУСТИМЫ!!! То же самое и относительно других видов циклов. Делать GOTO из цикла наружу - тоже нельзя!
Code:
FOR [VAR] переменная = нач.значение TO конечное_значение [STEP шаг]
команды
NEXT
- цикл от нач. значения до конечного (включительно) с шагом шаг, Шаг можно опустить. Если указано VAR - будет определение переменной, иначе - переменная должна быть определена до FOR.
(прим.Yoko: напоминаю, автор скриптового модуля не я, а Мамайх.)