Yoko

All sides of Injection
It is currently 2018-05-27 17:29:21

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2004-07-07 16:45:17 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1968
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: напоминаю, автор скриптового модуля не я, а Мамайх.)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1 post ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited