Документация по Clarion

         

ABS (абсолютное значение)



ABS(выражение)



выражение Константа, переменная или выражение.

Функция ABS возвращает абсолютное значение ВЫРАЖЕНИЯ. Абсолютное значение всегда положительно (или ноль).
Возвращаемый тип данных: REAL
Пример:
C = ABS(A - B) !C - абсолютное значение разницы между A и B
IF B < 0 THEN B = ABS(B). !Если B отрицательно, то сменить
! его знак



ACOS (арккосинус)



ACOS(выражение)


выражение Числовая константа, переменная или выражение, задающее косинус угла.



Функция ACOS возвращает ОБРАТНЫЙ косинус. "Обратить косинус" означает "найти угол, имеющий заданный косинус". Возвращается угол в радианах.
Возвращаемый тип данных: REAL
Пример:
InvCosine = ACOS(CosineAngle) !Получаем арккосинус
См. также:



ADDRESS (адрес памяти)



ADDRESS(переменная)


переменная Метка элемента данных.

Функцйя ADDRESS возвращает длинное целое (LONG), содержащее адрес ПЕРЕМЕННОЙ в памяти в стандартном формате сегмент:смещение. Эта функция позволяет передать адрес ПЕРЕМЕННОЙ внешним библиотекам, которы могут быть написаны на других языках. Если программа оверлейная, то после завершения процедуры, в которой использовалась значение ADDRESS, это значение не будет соответствовать истине. Это происходит из-за того, что загрузчик оверлеев выпоняет автоматическую подкачку и выгрузку сегментов.
Возвращаемый тип данных: LONG
Пример:
MAP
MODULE('External.Obj') !Внешняя библиотека
SomeProc(LONG),C !Передаем параметры как в С
. .
Varl CSTRING(10) !Строка, завершающаяся нулем
CODE
SomeProc(ADDRESS(Varl))
!Передаем адрес Varl во внешнюю процедуру



AGE (возраст от базовой даты)



AGE(дата_рождения,базовая_дата)


дата_рождения Числовое выражение для стандартной даты.
базовая_дата Числовое выражение для стандартной даты. Если пропущена, то для вычислений берется системная дата ДОС.

Функция AGE возвращает строку, содержащую время, прошедшее между двумя датами. Возвращаемая строка имеет такой формат:
1..60 дней - 'nn DAYS'
61 день..24 месяца - 'nn MOS'
2 года..999 лет - 'nnn YRS'
Возвращаемый тип данных: STRING
Пример:
Message = 'Работнику ' & Emp:Name & 'на сегодняшний день' |
& AGE(Emp:DOB.TODAYo)
!Выводим возраст работника в сообщении
См. также:



ALL (строка из повторяющихся символов)



ALL(строка[,длина])


строка Строковое выражение, содержащее последовательность символов для повторения.
длина Длина возвращаемой строки. Если пропущена, то будет возвращена строка из 255 символов.

Функция ALL возвращает строку, содержащую СТРОКУ, повторенную несколько раз. Возвращаемый тип данных: STRING
Пример:
Starline = ALL('*',25) !Получить 25 звездочек
Dotline = ALL('.') !Получить 255 точек



ASIN (арксинус)



ASIN(выражение)


выражение Числовая константа, переменная или выражение, задающее синус угла.

Функция ASIN возвращает ОБРАТНЫЙ синус. "Обратить синус" означает "получить угол, имеющий заданный синус". Возвращается угол в радианах.
Возвращаемый тип данных: REAL
Пример:
InvSine = ASIN(SineAngle) !Получить арксинус
См. также:



ATAN (арктангенс)



ATAN(выражение)


выражение Числовая константа, переменная или выражение, задающее тангенс угла.

Функция ATAN возвращает ОБРАТНЫЙ тангенсу "Обратить тангенс" означает "найти угол, имеющий заданный тангенс". Возвращается угол в радианах.
Возвращаемый тип данных: REAL
Пример:
InvTangent = ATAN(TangentAngle) !Получить арктангенс
См. также:



BAND (побитовое И - AND)



BAND(значение,маска)


значение Числовая константа, переменная или выражение,
задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией.
маска Числовая константа, переменная или выражение, задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции.

Функция BAND сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию ЛОГИЧЕСКОЕ И над каждым битом. Возвращается длинное целое, в котором единицы будут только в тех местах, где они были и в ЗНАЧЕНИИ и в МАСКЕ, в остальных местах будут нули.
BAND обычно используется для выяснения значения одного или нескольких бит (0 или 1) в переменной.
Возвращаемый тип данных: LONG

Пример:
BAND(0110b,0010b) вернет 0010b !0110b = 6, 0010b = 2
RateType BYTE !Тип оклада
Female EQUATE(0001b) !Маска для женщин
Male EQUATE(0010b) !Маска для мужчин
Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет
CODE
IF BAND(RateType,Female) | !Если женщина
AND BAND(RateType,Over25 ! старше 25 лет,
DO BaseRate ! то премия - обычная
ELSIF BAND(RateType,Male) !Если мужчина,
DO AdjBase ! то подправить размер премии
. !End if



БИТОВЫЕ ФУНКЦИИ


JOKE: -Что такое бит?
-Это байт за вычетом налогов.
-Что такое байт?
-[восемь раз объясняется, что такое бит]
-А что же такое килобайт?
-Ну, это очень долго объяснять...




BOR (побитовое ИЛИ - OR)



BOR(значение,маска)


значение Числовая константа, переменная или выражение,
задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией.
маска Числовая константа, переменная или выражение,
задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции.

Функция BOR сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию
ЛОГИЧЕСКОЕ ИЛИ над каждым битом. Возвращается длинное целое, в котором единице будут равны те биты, которые были единицами либо в ЗНАЧЕНИИ, либо в МАСКЕ либо и там и там, остальные биты будут нулями.
BOR обычно используется для того, чтобы принудительно установить один или несколько битов переменной в единицу.
Возвращаемый тип данных: LONG
Пример:
BOR(0110b,0010b) вернет 0110b !0110b = 6, 0010b = 2
RateType BYTE !Тип оклада
Female EQUATE(0001b) !Маска для женщин
Male EQUATE(0010b) !Маска для мужчин
Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет
CODE
RateType = BOR(RateType,Over25) !Установить признак "стар-
! ше 25 лет"
RateType = BOR(RateType,Male) !Установить признак "оклад
! мужчин"



BSHIFT (побитовый сдвиг)



BSHIFT(значение,счетчик)


значение Числовая константа, переменная или выражение.
При необходимости, преобразуется к типу LONG перед операцией.
счетчик Числовая константа, переменная или выражение,
задающее на сколько бит нужно сдвинуть ЗНАЧЕНИЕ. Если СЧЕТЧИК положителен, значение сдвигается ВЛЕВО, если отрицателен - то ВПРАВО.

Функция BSHIFT сдвигает биты ЗНАЧЕНИЯ на СЧЕТЧИК битов. ЗНАЧЕНИЕ может быть сдвинуто ВЛЕВО (от младших битов к старшим) или ВПРАВО (от старших к младшим), освобождающиеся места заполняются нулями.
(А.С.П. - можно сказать, что BSHIFT умножает (СЧЕТЧИК>0) или делит (СЧЕТЧИК<0) ЗНАЧЕНИЕ на 2 в степени СЧЕТЧИК. Скажем, чтобы умножить Х на 16 можно выполнить либо А=Х*16 либо А=BSHIFT(X,4), причем последнее выражение выполнится быстрее первого, поскольку обычно реализуется на уровне процессорной команды сдвига. В ФОРТЕ используется именно этот принцип)
Возвращаемый тип данных: LONG
Пример:
BSHIFT(0110b,1) вернет 1100b
BSHIFT(0110b,-1) вернет 0011b
Varswitch = BSHIFT(20,3) !Умножаем на 8
Varswitch = BSHIFT(Varswitch,-2) !Делим на 4
(А.С.П. - когда я писал свое примечание, я еще не смотрел на две предыдущие строки :)





BXOR (Побитовое Исключающее ИЛИ - XOR)



BXOR(значение,маска)


значение Числовая константа, переменная или выражение,
задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией.
маска Числовая константа, переменная или выражение, задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции.

Функция BXOR сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию ЛОГИЧЕСКОЕ ИСКЛЮЧАЮЩЕЕ ИЛИ над каждым битом. Возвращается длинное целое, в котором в единицу будут установлены только те биты, которые были единицами и в ЗНАЧЕНИИ и в МАСКЕ. Те биты, которые не совпали в МАСКЕ и ЗНАЧЕНИИ, а также те, которые были нулями и там и там, будут нулями.
BXOR обычно используется для переключения из 1 в 0 или наоборот одного или нескольких битов переменной.
Возвращаемый тип данных: LONG
Пример:
BXOR(0110b,0010b) вернет 0100b !0110b=6, 0100b=4, 0010b=2
RateType BYTE !Тип оклада
Female EQUATE(0001b) !Маска для женщин
Male EQUATE(0010b) !Маска для мужчин
Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет
Over65 EQUATE(1100b) !Маска для тех, кто старше 65 лет
CODE
RateType = BXOR(RateType,Over65) !Инвертировать признак "стар-
! ше 65 лет"



CENTER (центрирование строки)



CENTER(строка[,длина])


строка Строковая константа, переменная или выражение.
длина Длина результирующей строки. Если пропущена, то используется длина параметра СТРОКА.

Функция CENTER сначала удаляет ведущие и хвостовые пробелы из СТРОКИ, затем дополняет ее ведущими и хвостовыми пробелами так, чтобы строка отцентрировалась в пределах ДЛИНЫ и затем возвращает полученный результат.
Возвращаемый тип данных: STRING
Пример:
CENTER('ABC',5) вернет ' ABC '
CENTER('ABC ') вернет ' ABC '
CENTER(' ABC') вернет ' ABC '
Message = CENTER(Message) !Сообщение - в центр
Rpt:Title = CENTER(Name,60) !Имя - в центр



CHR (переводит ASCII-код символа в символ)



CHR(код)


код Числовое выражение, содержащее числовой ASCII-код символа.

Функция CHR возвращает символ, представленный его ASCII-кодом.
Возвращаемый тип данных: STRING
Пример:
Stringvar = CHR(122) !Строчная "z"
Stringvar = CHR(239) !Строчная "я"



CLIP (строка без хвостовых пробелов)



CLIP(строка)


строка Строковое выражение.

Функция CLIP удаляет хвостовые пробелы из строки. Возвращаемая строка - это подстрока СТРОКИ без хвостовых пробелов. CLIP часто используется вместе с оператором конкатенации (слияния) в строковых выражениях.
Возвращаемый тип данных: STRING
Пример:
Name = CLIP(Last) &','& CLIP(First) & Init & '.'
!ФИО по военному образцу,
! типа "Agarkoff, Serg P."



CLOCK (системное время)



CLOCK()

Функция CLOCK возвращает время дня, исходя из системного времени ДОС.
Возвращаемый тип данных: LONG
Пример:
Time = CLOCK() !Сохраняем системное время
SHOW(1,1,CLOCK(),@T4) !Показать системное время



COMMAND (командная строка)



COMMAND(флаг[,операция])


флаг Строковая константа или переменная, содержащая искомый параметр или номер параметра в командной строке.
операция Целочисленная константа или переменная в диапазоне от 0 до 3. Если пропущена, то по умолчанию 0.

Функция COMMAND возвращает значение параметра ФЛАГ из командной строки, файла конфигурации или переменной окружения. Если ФЛАГ не найден, COMMAND возвращает пустую строку. Если ФЛАГ описан многократно, то возвращается его первое значение.
ОПЕРАЦИЯ указывает где искать:
3 в командной строке
2 в файле конфигурации
1 в окружении
0 во всех трех предыдущих, в порядке 3-2-1
COMMAND ищет выражение ФЛАГ=VALUE и возвращает VALUE. Не должно быть пробелов между ФЛАГОМ, знаком равенства и VALUE. Из конфигурационного файла или окружения возвращается все, что находится справа от знака равенства. VALUE, получаемое из командной строки считывается до первой запятой или пробела. Если пробел или запятая являются значением ФЛАГА, то все, что стоит справа от знака равенства, должно заключаться в двойные кавычки (ФЛАГ="VALUE").
Также, COMMAND ищет в командной строке ФЛАГ, перед которым стоит слэш (/). Если такое найдено, то COMMAND возвращает значение ФЛАГА без слэша. Если ФЛАГ содержит только число, то COMMAND возвращает параметр командной строки, номер которого содержится в ФЛАГЕ. Если ФЛАГ пустая строка ('') и ОПЕРАЦИЯ=3, то возвращается вся командная строка, к которой добавлен ведущий пробел.
Файл конфигурации позволяет подстраивать программу во время исполнения. Это текстовый файл, который содержит любые желаемые параметры, которые имеют смысл во время исполнения. Каждый параметр должен занимать отдельную строку. По умолчанию, имя файла конфигурации, это имя программы, к которой этот файл относится, с расширением .INI. Это имя можно изменить из командной строки параметром CLAINI=новое_имя_фалй. CLAINI не утанавливается командой SETCOMMAND.
Возвращаемый тип данных: STRING
Пример:
C:\>MYPROG CLAVM="EMS ... 16,3,6"
!Параметр в командной строке содержит запятые
C:\>MYPROG CLAINI=INITFILE.INI
!Вместо MYPROG.INI используем INITFILE.INI
RUN(COMMAND('COMSPEC',1) & '/C DIR /P')
!Находим местоположение command.com
! и выполняем команду ДОС
IF COMMAND('/N',3) !В командной строке есть /N?
DO SomeProcess
.
IF UPPER(COMMAND('CLAVM',0)) = 'OFF'
!Неужели виртуальная память отключена?
DO NoVirtualMem ! ну тогда придется обойтись без нее :-(
ELSE
DO VirtualMem ! делаем нечто, интенсивно использущее
! память.
.
CommandString = COMMAND(",3) !Получаем всю командную строку
SecondParm = COMMAND('2'.3)
!Получаем из командной строки второй параметр
См. также:



COS (косинус)



COS(радиан)


радиан Числовая константа, переменная или выражение, задающее угол в радианах.

Функция COS возвращает тригонометрический косинус угла, выраженного в радианах. Косинус это отношение стороны прилегающей к углу и гипотенузы.
Возвращаемый тип данных: REAL
Пример:
Angle = 45 * Deg2Rad !Переводим 45њ в радианы
CoSineAngle = SIN(Angle) !Получаем косинус угла в 45њ



DATE (стандартная дата)



DATE(месяц,число,год)


месяц Числовая константа, переменная или выражение, задающее месяц.
число Числовая константа, переменная или выражение,
задающее число месяца.
год Числовая константа, переменная или выражение,
задающее год, в диапазоне от 00 до 99 (что
означает годы 1900-1999) либо от 1801 до 2099

Функция DATE возвращает стандартную дату для заданных месяца, числа и года. Параметры МЕСЯЦ и ДЕНЬ могут иметь значения, выходящие за пределы разумного. Скажем, 13й месяц рассматривается как январь следующего года. А день 32 января рассматривается как 1е февраля. Соответственно, DATE(12,32,87), DATE(13,1,87) и DATE(1,1,88) означают один и тот же день.
Возвращаемый тип данных: LONG
Пример:
HireDate = DATE(Hir:Month,Hir:Day,Hir:Year) !Вычисляем дату
! приема на работу
См. также:



DAY (день месяца для заданной даты)



DAY(дата)


дата Числовая константа, переменная, выражение
или метка переменной типа STRING, CSTRING или PSTRING, описанной в шаблоне даты. ДАТА должна быть стандартной датой. Переменная, описанная в шаблоне даты, автоматически преобразуется в промежуточное значение - стандартную дату.

Функция DAY вычисляет число месяца (1..31) для заданной стандартной даты.
Возвращаемый тип данных: LONG
Пример:
OutDay = DAY(TODAY()) !Какое у нас сегодня число?
DueDay = DAY(TODAY()+2) !Вычисляем день выплат
См. также:



DEFORMAT (удаляет форматирование из числовых строк)



DEFORMAT(строка[,шаблон])


строка Строковое выражение, содержащее строку цифр.
шаблон Шаблон формата или метка данного типа STRING,
CSTRING или PSTRING, описанного как шаблон формата. Если пропущено, то используется шаблон, использованный для СТРОКИ. (?) Если СТРОКА описана без параметра ШАБЛОН, то возвращаемое значение будет содержать только те символы, которые разрешены в числовых константах.

Функция DEFORMAT удаляет символы форматирования и строки, содержащей цифры, возвращается только то, что можно распознать как число.
Возвращаемый тип данных: STRING
Пример:
DialString = 'ATDT1' & DEFORMAT(Phone,@P(###)###-####P) & |
'@13,10)' !Составляем номер для набора модемом
ClarionDate = DEFORMAT(dBaseDate,@D1)
!Получаем стандартную дату из строки вида mm/dd/yy



ERROR (сообщение об ошибке)



ERROR()

Функция ERROR возвращает строку, содержащую описание возникшей ошибки? Если ошибок не было, то ERROR вернет пустую строку.
Возвращаемый тип данных: STRING
Пример:
PUT(NameQueue) !Пишем запись
IF ERROR() = 'Queue Entry Not Found' !Если не найдена
ADD(NameQueue) ! то добавим новую
IF ERRORCODE() THEN STOP(ERROR()).
!Может еще какие-то ЕГГОГИ?
.



ERRORCODE (номер кода ошибки)



ERRORCODE()

Функция ERRORCODE возвращает номер (код) возникшей ошибки. Если ошибок не было, то ERRORCODE возвращает ноль.
Возвращаемый тип данных: LONG
Пример:
ADD(Location) !Добавим новую запись
IF ERRORCODE() = 8 !Не хватает памяти?
SHOW(1,5,'Памяти мало!') ! сообщим об этом вопиющем факте
.



ERRORFILE (имя ошибочного файла)



ERRORFILE()

Функция ERRORFILE возвращает имя файла, при обработке которого возникла ошибка. Если файл открыт, то возвращается его полная спецификация в формате ДОС. Если файл не открыт, то возвращается содержимое атрибута NAME оператора FILE. Если файл не открыт и оператор FILE был без атрибута NAME, то возвращается метка оператора FILE. Если ошибок не было, или возникшая ошибка не связана с файлами, то ERRORFILE возвращает пустую строку.
Возвращаемый тип данных: STRING
Пример:
ADD(Location) !Добавляем новый элемент
IF ERRORCODE()
SHOW(1,5,'Проблема с файлом ' & ERRORFILE())
!Вывести сообщение
ASK ! и подождать нажатия на кнопку
.



FORMAT (форматирует число по шаблону)



FORMAT(значение,шаблон)


значение Числовое выражение, содержащее значение для
форматирования.
шаблон Шаблон формата или метка STRING, CSTRING или
PSTRING описанной с параметром ШАБЛОН.

Функция FORMAT возвращает числовую строку, отформатированную согласно параметру ШАБЛОН.
Возвращаемый тип данных: STRING
Пример:
Rpt:SocSecNbr = FORMAT(Emp:SSN,@P###-##-####P)
!Форматируем под номер карточки социального страхования
Phone=FORMAT(DEFORMAT(Phone,@P###-###-####P),@P(###)###-####P)
!Заменяем в номере некоторые дефисы на скобки
DateString = FORMAT(DateLong,@D1) !Преобразуем дату в строку



Вспомогательные процедуры и функции





(абсолютное значение)
(попадает ли число в заданный
диапазон)
(отсекает дробную часть)
(натуральный логарифм)
(десятичный логарифм)
(случайное число)
(округление числа)
(квадратный корень)



(синус)
(косинус)
(тангенс)
(арксинус)
(арккосинус)
(арктангенс)



(строка из повторяющихся символов)
(центрирование строки)
(переводит ASCII-код символа в символ)
(строка без хвостовых пробелов)
(удаляет форматирование из числовых строк)
(форматирует число по шаблону)
(позиция подстроки в строке)
(строка, выравненная влево)
(длина строки)
(нижний регистр)
(состоит ли строка только из цифр?)
(строка, выравненная вправо)
(возвращает подстроку строки)
(верхний регистр)
(код символа)



(побитовое И - AND)
(побитовое ИЛИ - OR)
(побитовое Исключающее ИЛИ - XOR)
(побитовый сдвиг)





(системная дата)
(установка системной даты)
(системное время)
(установка системного времени)
(стандартная дата)
(день месяца для заданной даты)
(месяц для заданной даты)
(год для заданной даты)
(возраст от базовой даты)



(командная строка)
(доступная память)
(текущий диск и каталог)
(код завершения ДОС)
(установить параметры командной строки)
(изменить текущий диск и каталог)



(адрес памяти)
(сообщение об ошибке)
(номер кода ошибки)
(имя ошибочного файла)
(читать данные из порта)
(максимальное значение индекса массива)
(досовское имя файла или устройства)
(проверка пропущенных параметров)
(записать данные в порт)
(прочитать память по адресу)
(записать в память по адресу)
(состояние принтера/файла/диска/клавиатуры)



IN (читать данные из порта)



IN(порт,данные)


порт Числовая константа, переменная или выражение, задаюшее номер порта. Список разрешенных номеров портов можно найти в Техническом Руководстве по IBM PC.
данные Метка переменной типа BYTE, SHORT или USHORT. Если ДАННЫЕ типа BYTE, то из порта читается младший байт через регистр AL. Если же ДАННЫЕ типа SHORT или USHORT, то читаются два байта через регистр AX.

Оператор IN читает данные из порта
ввода, исполняя машинную команду IN.
Пример:
IN(61h,SavePPI) !Сохраняем PPI
IN(62h,PError) !Нет ли ошибок четности
См. также:



INRANGE (попадает ли число в заданный диапазон)



INRANGE(выражение,нижний_предел,верхний_предел)


выражение Числовая константа, переменная или выражение.
нижний_предел Числовая константа, переменная или выражение задающее нижнюю границу диапазона.
верхний_предел Числовая константа, переменная или выражение задающее верхнюю границу диапазона.

Функция INRANGE сравнивает ВЫРАЖЕНИЕ с включительным диапазоном чисел. Если значение ВЫРАЖЕНИЯ попадает в этот диапазон, то функция возвращает единицу ("ИСТИНУ"). Если же ВЫРАЖЕНИЕ больше ВЕРХНЕГО_ПРЕДЕЛА или меньше НИЖНЕГО_ПРЕДЕЛА, то возвращается ноль ("ЛОЖЬ").
Возвращаемый тип данных: LONG
Пример:
IF INRANGE(Date % 7,1,5) !Если день - рабочий
DO WeekdayRate ! то оплата обычная
ELSE !Иначе
DO WeekendRate ! плата за работу в выходные
. !конец условия



INSTRING (позиция подстроки в строке)



INSTRING(подстрока,строка[,шаг][,старт])


подстрока Строковая константа, переменная или выражение, содержащее искомую строку.
строка Метка переменной типа STRING, CSTRING или PSTRING, в которой искать.
шаг Числовая константа, переменная или выражение, задающее размер шага поиска. ШАГ=1 означает, что ПОДСТРОКА будет искаться с каждого символа СТРОКИ, ШАГ=2 - с каждого второго символа и так далее. Если пропущен, то по умолчанию равен длине ПОДСТРОКИ.
старт Числовая константа, переменная или выражение, задающее начальную точку, номер символа, для поиска ring. Если пропущен, поиск начнется с первого символа СТРОКИ.

Функция INSTRING проходит по СТРОКЕ, отыскивая в ней вхождения ПОДСТРОКИ. Если ПОДСТРОКА найдена, то возвращается номер символа в СТРОКЕ, с которого начинается вхождение в нее ПОДСТРОКИ. Если же ПОДСТРОКА не найдена, то INSTRING возвращает 0.
Возвращаемый тип данных: LONG
Пример:
INSTRING('DEF','ABCDEFGHIJ',1,1) вернет 4
INSTRING('DEF','ABCDEFGHIJ',2,1) вернет 0
INSTRING('DEF','ABCDEFGHIJ',2,2) вернет 2
INSTRING('DEF','ABCDEFGHIJ',3,1) вернет 2
Extension = SUB(FileSpec,INSTRING('.',FileSpec) + 1,3)
!Выделяем расширение из полной спецификации файла
IF INSTRING(Search.Cus:Notes,1,1) !Если искомая переменная
! найдена, то
Scr:Message = 'Есть такая буква!' ! сообщить об этом
.



INT (отсекает дробную часть)



INT(выражение)


выражение Числовая константа, переменная или выражение.

Функция INT возвращает целую часть числового ВЫРАЖЕНИЯ. Знак результата не меняется и округления не производится.
Возвращаемый тип данных: REAL
Пример:
INT(8.5) вернет 8
INT(-5.9) вернет -5



LEFT (строка, выравненная влево)



LEFT(строка[,длина])


строка Строковая константа, переменная или выражение.
длина Числовая константа, переменная или выражение, задающее длину возвращаемой строки. Если опущена, то длина результата равна длине СТРОКИ.

Функция LEFT возвращает СТРОКУ, выравненную влево. Ведущие пробелы удаляются из СТРОКИ.
Возвращаемый тип данных: STRING
Пример:
CompanyName = LEFT(CompanyName) !Название фирмы сдвинуть влево



LEN (длина строки)



LEN(строка)


строка Строковая константа, переменная или выражение.

Функция LEN возвращает длину СТРОКИ. Если параметр СТРОКА это метка переменной, то LEN вернет ЗАДАННУЮ ПРИ ОПИСАНИИ длину этой переменной. Числовые значения автоматически преобразуются в промежуточные строковые.
Возвращаемый тип данных: LONG
Пример:
IF LEN(CLIP(Title) &' '& CLIP(First) &' '& CLIP(Last)) > 30
!Если полное ФИО не укладывается в заданную длину,
Rpt:Name = CLIP(Title) &' '& SUB(First.1.1) &'.'& Last
! то вместо отчества используем инициал.
ELSE
Rpt:Name = CLIP(Title) &' '& CLIP(First) &' '& CLIP(Last)
! ну а если все в порядке, то поставим полное ФИО
.
Rpt:Title = CENTER(Cus:Name,LEN(Rpt:Title))
!Центрируем имя в заголовке



LOG10 (десятичный логарифм)



LOG10(выражение)


выражение Числовая константа, переменная или выражение. Если значение ВЫРАЖЕНИЯ меньше нуля, то возвращается ноль, поскольку десятичный логарифм не определен для отрицательных чисел.

Функция LOG10 (произносится как "log ten"(ЛОГ ТЭН) ) возвращает десятичный логарифм числового ВЫРАЖЕНИЯ. Десятичный логарифм, это показатель степени, в которую надо возвести 10, чтобы получить заданное число.
Возвращаемый тип данных: REAL
Пример:
LOG10(10) вернет 1
LOG10(1) вернет 0
LogStore = LOG10(Var) !Сохранить десятичный логарифм от VAR



LOGE (натуральный логарифм)



LOGE(выражение)


выражение Числовая константа, переменная или выражение. Если значение ВЫРАЖЕНИЯ меньше нуля, то возвращается ноль, поскольку натуральный логарифм не определен для отрицательных чисел.

Функция LOGE (произносится как "loge"(ЛОУГ) ) возвращает натуральный логарифм числового ВЫРАЖЕНИЯ. Натуральный логарифм это показатель степени, в которую надо возвести число е, чтобы получилось заданное число.
Значение e мы приняли за 2.71828182846.
Возвращаемый тип данных: REAL
Пример:
LOGE(2.71828182846) вернет 1
LOGE(1) вернет 0
LogVal = LOGE(Val) !Получить натуральный логарифм от VAL.



LOWER (нижний регистр)



LOWER(строка)


строка Строковая константа, переменная или выражение
для преобразования.

Функция LOWER возвращает строку, в которой все буквы - строчные.
(А.С.П. - Что не совсем верно для русского текста,с которым CLARION SoftWare ну никак не хочет дружить :( )
Возвращаемый тип данных: STRING
Пример:
Name = SUB(Name,1,1) & LOWER(SUB(Name,2,19))
!Все буквы имени, кроме первой, сделаем строчными



MAXIMUM (максимальное значение индекса массива)



MAXIMUM(переменная,индекс)


переменная Метка переменной, описанной с атрибутом DIM.
индекс Числовая константа, переменная или выражение, задающее номер индекса. ИНДЕКС определяет, какое измерение массива передается этой функции.

Функция MAXIMUM возвращает максимальное значение заданного ИНДЕКСА для переменной-массива. Обычно это используется для определения размера массива, переданного в процедуру или функцию.
Возвращаемый тип данных: LONG
Пример:
Array BYTE,DIM(10,12) !Описываем двумерный массив
Для массива выше: MAXIMUM(Array,1) вернет 10
MAXIMUM(Array,2) вернет 12
LOOP X# = 1 TO MAXIMUM(Array,1)
!Цикл до конца первого измерения
LOOP Y# = 1 TO MAXIMUM(Array,2)
! Цикл до конца второго измерения
Array[X#,Y#] = 27 ! Каждый элемент = 27
. . !Конец циклов
См. также: DIM, Массивы как параметры ПРОЦЕДУР и ФУНКЦИЙ



MEMORY (доступная память)



MEMORY([n])


n Числовая константа, переменная или выражение. Допустимы значения 0..4, включительно. Если пропущено, то по умолчанию - 0.

Функция MEMORY возвращает количество доступной свободной памяти в байтах. Если n=0 или n=1, то возвращается доступная стандартная (conventional) память, при n=2 возвращается количество свободной EMS, при n=3 возвращается общее количество свободной виртуальной памяти, и при n=4 возвращается размер максимального доступного блока памяти. Если n не в диапазоне 1..4, то возвращается ноль.
Возвращаемый тип данных: LONG
Пример:
SysMem = MEMORY() !Возвращается количество
SysMem = MEMORY(0) ! свободной
SysMem = MEMORY(1) ! стандартной памяти
SysMem = MEMORY(2) !Возвращается количество свободной EMS
SysMem = MEMORY(3) !Возвращается общее количество свободной
! виртуальной памяти
SysMem = MEMORY(4) !Возвращается наибольший виртуальный блок



MONTH (месяц для заданной даты)



MONTH(дата)


дата Числовая константа, переменная, выражение или метка переменной типа STRING, CSTRING или PSTRING, описанной в шаблоне даты. ДАТА должна быть стандартной датой. Переменная, описанная в шаблоне даты, автоматически преобразуется в промежуточное значение - стандартную дату.

Функция MONTH возвращает месяц года (1..12) для заданной стандартной даты.
Возвращаемый тип данных: LONG
Пример:
PayMonth = MONTH(DueDate) !Месяц выплаты
См. также:



NAME (досовское имя файла или устройства)



NAME(метка)


метка Метка описания отчета или файла.

Функция NAME возвращает строку, содержащую имя в стандарте ДОС для структуры, заданной МЕТКОЙ. Для файлов, если файл открыт, возвращается полная спецификация файла в DOS (диск, путь, имя и расширение). Если файл закрыт, то возвращается содержимое атрибута NAME для этого файла.
Для отчетов, возвращается имя, заданное атрибутом DEVICE. Если отчет выводится в файл и файл открыт, то NAME вернет полную спецификацию этого файла. В противном случае, NAME вернет то, что записано в атрибуте DЕVICE. Если этого атрибута нет, то возвращается PRN.
Возвращаемый тип данных: STRING
Пример:
OpenFile = NAME(Customer) !Сохраняем имя открытого файла
OutputDevice = NAME(AcctRpt)
!Сохраняем имя устройства, куда выводится отчет



NUMERIC (состоит ли строка только из цифр?)



NUMERIC(строка)


строка Строковая константа, переменная или выражение.

Функция NUMERIC возвращает 1 (ИСТИНУ) если строка содержит разрешенное числовое значение. Она вернет 0 (ЛОЖЬ) если строка содержит нецифровые символы. Разрешенные символы, это цифры от 0 до 9, ведущий знак минус и десятичная точка.
Возвращаемый тип данных: LONG
Пример:
IF NOT NUMERIC(PartNumber) !Если номер запчасти - не число,
DO ChkValidPart !то проверим его на допустимость
. !конец условия



OMITTED (проверка пропущенных параметров)



OMITTED(номер)


номер Целочисленная константа или переменная, задающая номер проверяемого параметра.

Функция OMITTED проверяет был ли передан тот или иной параметр в процедуру или функцию. Если искомый параметр пропущен, то возвращается ИСТИНА (1). Если параметр с заданным НОМЕРОМ передан, то возвращается ЛОЖЬ (0). Любой НОМЕР после последнего переданного параметра соответствует пропущенному параметру.
Разрешается пропускать только те параметры, чей тип данных заключен в угловые скобки (<>) в прототипе процедуры или функции в MAP-структуре.
Возвращаемый тип данных: LONG
Пример:
SomeProc(Fieldl,,Field4)
Для вышеприведенного примера:
OMITTED(1) вернет 0
OMITTED(2) вернет 1
OMITTED(3) вернет 0
OMITTED(4) вернет 1
PROGRAM
MAP
SomeFunction(строка,<LONG>),STRING !Прототип функции
.
CODE
:
:
SomeFunction FUNCTION(Fieldl,Date)
CODE
IF OMITTED(2) !Если не задана дата,
Date = TODAY() ! то подставляем системную.
См. также: Прототипы процедур и функций



OUT (записать данные в порт)



OUT(порт,данные)


порт Числовая константа, переменная или выражение, задаюшее номер порта. Список разрешенных номеров портов можно найти в Техническом Руководстве по IBM PC.
данные Целочисленная константа, не более чем 65,535 (64К) или метка переменной типа BYTE, SHORT или USHORT. Если ДАННЫЕ типа BYTE, то в порт выводится младший байт через регистр AL. Если же ДАННЫЕ имеют тип SHORT или USHORT, то через регистр AX в порт записываются два байта.

Оператор OUT записывает данные в порт вывода, выполняя машинную команду OUT.
Пример:
OUT(43h.Control) !Посылаем байт управления в таймер
OUT(61h,Speaker) !Включаем динамик
См. также:



PATH (текущий диск и каталог)



PATH()

Функция PATH возвращает строку, содержащую текущий диск и каталог
Возвращаемый тип данных: STRING
Пример:
IF PATH() = 'C:\' !Если мы в корне
SHOW(12,12,'Мы сейчас в корневом каталоге')! то сообщим об
! этом
См. также:



PEEK (read memory address)



PEEK(сегмент:смещение,приемник)


сегмент:смещение Числовая константа, переменная или выражение, задающее адрес памяти. СЕГМЕНТ должен быть в двух старших байтах, а СМЕЩЕНИЕ в двух младших. Если этот параметр типа REAL, то в промежуточное значение преобрзуется только его целая часть, чтобы получить 32-хбитное целое.
приемник Метка переменной.

Оператор PEEK читает данные из памяти по адресу СЕГМЕНТ:СМЕЩЕНИЕ и записывает их в переменную ПРИЕМНИК. PEEK считывает столько байт, чколько нужно, чтобы заполнить ПРИЕМНИК.
Пример:
Segment USHORT
Offset USHORT
Destl BYTE
Dest2 SHORT
Dests REAL
KeyboardFlag BYTE
CODE
PEEK(Segment*(256.0*256.0)+Offset,Destl) !Читаем 1 байт
PEEK(BSHIFT(Segment,16)+Offset,Dest2) !Читаем 2 байта
PEEK(BSHIFT(Segment,16)+Offset,Dest3) !Читаем 8 байт
PEEK(00400017h,KeyboardFlag)
!Читаем байт состояния клавиатуры
См. также:



POKE (записать в память по адресу)



POKE(сегмент:смещение,источник)


сегмент:смещение Числовая константа, переменная или выражение, задающее адрес памяти. СЕГМЕНТ должен быть в двух старших байтах, а СМЕЩЕНИЕ в двух младших. Если этот параметр типа REAL, то в промежуточное значение преобрзуется только его целая часть, чтобы получить 32-хбитное целое.
источник Метка переменной.

Оператор POKE записывает содержимое переменной ИСТОЧНИК в указанный дрес памяти. POKE пишет столько байт, сколько их в ИСТОЧНИКЕ.
Пример:
Segment USHORT
Offset USHORT
Destl BYTE
Dest2 SHORT
Dests REAL
KeyboardFlag BYTE
CODE
PEEK(Segment*(256.0*256.0)+Offset,Source1) !Пишем 1 байт
PEEK(BSHIFT(Segment,16)+Offset,Source2) !Пишем 2 байта
PEEK(BSHIFT(Segment,16)+Offset,Source2) !Пишем 8 байт
POKE(00400017h,KeyboardFlag) !читаем состояние клавиатуры
KeyboardFlag = BOR(KeyboardFlag,40h) ! включаем CAPS
POKE(00400017h,KeyboardFlag) !и перезаписываем состояние
См. также:



RANDOM (случайное число)



RANDOM(нижний_предел,верхний_предел)


нижний_предел Числовая константа, переменная или выражение, задающее нижнюю границу диапазона.
верхний_предел Числовая константа, переменная или выражение, задающее верхнюю границу диапазона.

Функция RANDOM возвращает случайное целое между НИЖНИМ и ВЕРХНИМ ПРЕДЕЛАМИ включительно. Параметры нижний_предел и верхний_предел могуь быть любыми числовыми выражениями, но в диапазон включается только их целая часть.
Возвращаемый тип данных: LONG
Пример:
LOOP X# - 1 TO 6
LottoNbr[X#] = RANDOM(1,49) !Выбираем числа для 6 из 49
.



RIGHT (строка, выравненная вправо)



RIGHT(строка[,длина])


строка Строковая константа, переменная или выражение.
длина Числовая константа, переменная или выражение, задающее длину возвращаемой строки. Если пропущена, то длина результата равна длине СТРОКИ.

Функция RIGHT возвращает строку, выравненную вправо. Хвостовые пробелы удаляются, затем строка дополняется слева ведущими пробелами до ДЛИНЫ.
Возвращаемый тип данных: STRING
Пример:
Message = RIGHT(Message) !Сообщение сдвинуть вправо



ROUND (округление числа)



ROUND(выражение,точность)


выражение Числовая константа, переменная или выражение.
точность Числовое выражение, являющееся степенью десяти, как то: 1, 10, 100, 0.1, 0.001 и т.д. Если значение не является точной степенью десяти, то используется ближайшая меньшая степень т.е. 0.55 заменится на 0.1, а 155 - на 100.

Функция ROUND возвращает значение ВЫРАЖЕНИЯ, округленное до
заданного ТОЧНОСТЬЮ знака.
Возвращаемый тип данных: REAL
Пример:
ROUND(5163,100) вернет 5200
ROUND(657.50,1) вернет 658
ROUND(51.63594,.O1) вернет 51.64
Commission = ROUND(Price / Rate,.01)
!Округляем комиссионные до целых копеек



RUNCODE (код завершения ДОС)



RUNCODE()

Функция RUNCODE возвращает код завершения, переданный в ДОС командой, выполненной оператором RUN. Этот код выхода передается оператором HALT в программах на Кларион, и он же является ERRORLEVEL в DOS. Значение, возвращаемое функцией RUNCODE имеет тип LONG и может иметь любое значение, переданное в ДОС как код завершения порожденного процесса.
Порожденный процесс может передать в DOS только значение типа BYTE в качестве кода завершения, поэтому, в качестве кодов завершения не могут использоваться отрицательные числа. Этот факт позволяет функции RUNCODE зарезервировать некоторые значения, чтобы обрабатывать ситуации, в которых код выхода недоступен:
-0 нормальное завершение
-1 программа прервана по Ctri-C
-2 программа прервана из-за критической ошибки
-3 TSR завершил работу
-4 программа не запустилась (проверь функцию ERROR())
Возвращаемый тип данных: LONG
Пример:
RUN('Nextprog.exe') !Запускаем следующую программу
IF RUNCODE() = -4
IF ERROR() = 'Not Enough Memory'
!Если программа не запустилась из-за нехватки памяти
SHOW(25,10,'Insufficient memory') ! то сообщить об этом
RETURN ! и завершить процедуру
ELSE
STOP(ERROR()) ! прервать нашу программу
. .
См. также: RUN, RUNSMALL, HALT



SETCLOCK (установка системного времени)



SETCLOCK(время)


время Числовая константа, переменная или выражение,
содержащее стандартное время, выраженное в сотых долях секунды).

Оператор SETCLOCK останавливает системное время ДОС.
Пример:
SETCLOCK(1) ! Да настанет полночь!!!



SETCOMMAND (установить параметры командной строки)



SETCOMMAND(командная_строка)


командная_строка Строковая константа, переменная или выражение, содержащее новые параметры командной строки.

SETCOMMAND позволяет программе "изнутри" задать параметры командной строки, которые может получить функция COMMAND. SETCOMMAND перекрывает любые параметры командной строки с такими же именами. Чтобы отменить параметр, начинающийся со слэша, добавь к нему знак равенства (=) в новой командной строке.
SETCOMMAND нельзя использовать для установки параметров системного уровня, которые задаются в командной строке при загрузке программы. Эти параметры, как виртуальная память (CLAVM=) или файл конфигурации программы (CLAINI=) должны быть заданы при загрузке и не могут быть изменены с помощью SETCOMMAND. Но каталог для временных файлов (CLATMP=) можно переопределить в SETCOMMAND.
Пример:
SETCOMMAND(' /N') !Добавляем параметр /N
SETCOMMAND(' /N=') !Отключаем параметр /N
См. также:



SETPATH (изменить текущий диск и каталог)



SETPATH(диск_и_путь)


диск_и_путь Строковая константа или метка переменной типа
STRING, CSTRING или PSTRING, содержащей специфика-
цию нового диска и пути. Если пропущена буква диска
и двлеточие после нее, то подразумевается текущий
диск.

SETPATH изменяет текущий диск и каталог ДОС. Если диск или каталог заданы неправильно, возвращается ошибка "Путь не существует" (Path Not Found) и текущий каталог не меняется.
Возвращаемые ошибки:
03 Путь не существует
Пример:
SETPATH('C:\LEDGER') !Переходим в каталог бухгалтерских книг
SETPATH(UserPath) !Переходим в пользовательский каталог



SETTODAY (установка системной даты)



SETTODAY(дата)


дата Числовая константа, переменная или выражение,
содержащее стандартную дату.

Оператор SETTODAY устанавливает системную дату ДОС.
Пример:
SETTODAY(TODAY() + 1) !Установим завтрашнюю дату



SIN (синус)



SIN(радиан)


радиан Числовая константа, переменная или выражение, задающее угол в радианах.

Функция SIN возвращает тригонометрический синус угла, выраженного в радианах. Синус - это соотношение между длиной стороны противоположной углу и длиной гипотенузы.
Возвращаемый тип данных: REAL
Пример:
Angle = 45 * Deg2Rad !Переводим 45њ в радианы
SineAngle = SIN(Angle) !Получаем синус угла в 45њ



SQRT (квадратный корень)



SQRT(выражение)


выражение Числовая константа, переменная или выражение. Если значение ВЫРЖЕНИЯ меньше нуля, то возвращается 0.

Функция SORT возвращает квадратный корень из ВЫРАЖЕНИЯ. Если Х - это любое положительное вещественное число, то корень квадратный из Х,
это такое число, которое, будучи умноженным само на себя, даст Х.
Возвращаемый тип данных: REAL
Пример:
Length = SORT(X^2 + Y^2)
!По теореме Пифагора находим расстояние от 0,0 до X,Y



Стандартная дата


Стандартная дата Кларион - это число дней, прошедших с 28 декабря 1800 года. Доступны даты в диапазоне от 1 января 1801 (стандартная дата 4) до 31 декабря 2099 (стандартная дата 109211). Функции работы с датой не могут вернуть правильных результатов для значений, выходящих за эти пределы. Календарь стандартной даты подстраивается для високосных лет в диапазоне доступных дат.
Обычно, в качестве стандартной даты используются данные типа LONG описанные в шаблоне даты (@D). Типа данных DATE - это формат данных, используемый менеджером записей Btrieve. Поля DATE преобразуются в LONG, содержащее стандартную дату Кларион перед выполнением любых математических операций или операций работы с датами. Таким образом, DATE стоит использовать для файловой совместимости с Btrieve, а LONG для других файловых систем.



Стандартное время


Стандартное время Кларион - это число сотых долей секунды, прошедших с полуночи. Допустимые пределы: от 1 (что мы приняли за полночь) до 8,640,00 (23:59:59:99). Стандартное время 1 точно соответствует полуночи. Хотя время и выражается с точностью до сотых долей секунды, системный таймер обновляется только 18.2 раза в секунду (приблизительно каждые 5.5 сотых секунды).
Обычно, в качестве стандартного времени используются данные типа LONG описанные в шаблоне времени (@T). Тип данных TIME используется в менеджере записей Btrieve. Поля типа TIME преобразуются в LONG, содержащее стандартное время Кларион перед выполнением любых математических операций или операций со временем. Таким образом, DATE имеет смысл использовать для файловой совместимости с Btrieve, а LONG - во всех остальных случаях.



STATUS (состояние принтера/файла/диска/клавиатуры)


STATUS(| принтер |)
| диск |
| файл |
|клавиатура|

принтер Строковая константа или переменная, содержащая допостимое в ДОС название принтерного порта: LPT1, LPT2 или LPT3.
диск Строковая константа или переменная, содержащая допустимое в ДОС имя диска: A:, B:, C:, . . ., Z:.
файл Метка оператора FILE.
клавиатура Строковая константа или переменная, содержащая имя устройства: CON.

Функция STATUS возвращает текущее состояние принтера, диска, файла или клавиатуры.

STATUS(принтер) Возвращает 0, если принтер не готов и 1, если с принтером все в порядке.
STATUS(диск) Возвращает 0, если диск не готов или свободное место на диске в байтах, если диск в порядке.
STATUS(файл) Возвращает 0, если файл не открыт и режим доступа к файлу, если он открыт. Если текущий режим доступа - 0 (только для чтения, любой доступ), то возвращается код 40h (Read Only Deny None) (см. ).
STATUS(клавиатура) Возвращает флаг состояния клавиатуры. Этот флаг рассматривается в виде совокупности битов в длинном целом. Значения битов приведены ниже (** означает, что бит установлен только пока клавиша нажата):
x....... ........ Ins **
.x...... ........ Caps Lock **
..x..... ........ Num Lock **
...x.... ........ Scroll Lock **
....x... ........ Режим паузы (Ctrl-Num Lock или Pause) **
.....x.. ........ Sys Req **
......x. ........ Left Alt **
.......x ........ Left Ctrl **
........ x....... Режим вставки
........ .x...... Caps Lock
........ ..x..... Num Lock
........ ...x.... Scroll Lock
........ ....x... Alt **
........ .....x.. Ctrl **
........ ......x. Left Shift **
........ .......x Right Shift **

Возвращаемый тип данных: LONG
Пример:
IF STATUS(DataFile) % 16 = 0 !Файл открыт только для чтения?
RETURN ! ну тогда отваливаем
ELSE !В противном случае
EXECUTE DiskAction ! пишем запись на диск
ADD(DataFile)
PUT(DataFile)
DELETE(DataFile)
. .
LOOP
IF STATUS('A:') = 0 !Проверяем состояние диска А:
SHOW(1,1,'Вставьте, пожалуйста, диск в дисковод A:')
BEEP
ASK
ELSE
BREAK
. .
LOOP
IF STATUS('LPT1') = 0 !Проверка состояния принтера
SHOW(1,1,'Проверьте, пожалуйста, принтер.')
BEEP
ASK
ELSE
BREAK
. .
LOOP
IF BAND(STATUS('CON'),00100000b) !Проверяем Num Lock
SHOW(1,1,'Выключите, пожалуйста, Num Lock')
BEEP
ASK
ELSE
BREAK
. .
См. также:





SUB (возвращает подстроку строки)



SUB(строка,позиция,длина)


строка Строковая константа, переменная или выражение.
позиция Целочисленная константа, переменная или выражение. Ели ПОЗИЦИЯ положительна, то она задает номер символа от начала СТРОКИ, если отрицательная, то от конца СТРОКИ.
длина Числовая константа, переменная или выражение,
задающая количество возвращаемых символов.

Функция SUB возвращает ДЛИНА символов из СТРОКИ, начиная с заданной ПОЗИЦИИ.
Возвращаемый тип данных: STRING
Пример:
SUB('ABCDEFGHI',1,1) вернет 'A'
SUB('ABCDEFGHI',-1,1) вернет 'I'
SUB('ABCDEFGHI',4,3) вернет 'DEF'
Extension = SUB(FileName,INSTRING('.',FileName,1,1),3)
!Получаем расширение файла
См. также:



TAN (тангенс)



TAN(радиан)


радиан Числовая константа, переменная или выражение, задающее угол в радианах.

Функция TAN возвращает тригонометрический тангенс угла, выраженного в радианах. Тангенс это отношение стороныы противоположной углу и стороны прилегающей к углу.
Возвращаемый тип данных: REAL
Пример:
Angle = 45 * Deg2Rad !Переводим 45њ в радианы
TangentAngle = SIN(Angle) !Получаем тангенс угла в 45њ



TODAY (системная дата)



TODAY()

Функция TODAY возвращает системную дату DOS в формате стандартной даты Кларион.
Возвращаемый тип данных: LONG
Пример:
SETTODAY(TODAY() + 1) !Установить завтрашнюю дату
OrderDate = TODAY() !Проставить на счете сегодняшнюю дату



ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ


Тригонометрические функции возвращают значения,
представляющие углы и соотношения сторон прямоугольного
треугольника (содержащего угол в 90њ). Гипотенуза, это сторона
треугольника, противостоящая его прямому углу. (Остальные подробности можно узнать из любого нормального учебника тригонометрии, что по-гречески
означает "измерение треугольников").
Углы выражаются в радианах. PI (ПИ) -
это константа, которая представляет соотношение между длиной окружности и ее радиусом. В окружности есть 2*Pl радиан (или 360 градусов).
Ниже приведены более или менее точное значение ПИ и коэффициенты преобразований между радианами и градусами.
Pi EQUATE(3.1415926535898) !Значение ПИ
Rad2Deg EQUATE(57.295779513082) !Градусов в радиане
Deg2Rad EQUATE(.0174532925199) !Радиан в градусе



UPPER (верхний регистр)



UPPER(строка)


строка Строковая константа, переменная или выражение для преобразования.

Функция UPPER возвращает СТРОКУ, в которой все символы - заглавные.
(А.С.П. - Что не совсем верно для русского текста, с которым CLARION SoftWare ну никак не хочет дружить :( )
Возвращаемый тип данных: STRING
Пример:
Name = UPPER(Name) !Все имя вывести на верхнем регистре



VAL (код символа)



VAL(символ)


символ Однобайтная строка, содержащая СИМВОЛ.

Функция VAL возвращает ASCII-код СИМВОЛА.
Возвращаемый тип данных: LONG
Пример:
VAL('я') вернет 239
VAT('z') вернет 122
CharVal = VAL(StrChar)
!Получить ASCII-код символа из StrChar



YEAR (год для заданной даты)



YEAR(дата)


дата Числовая константа, переменная, выражение
или метка переменной типа STRING, CSTRING или PSTRING, описанной в шаблоне даты. ДАТА должна быть стандартной датой. Переменная, описанная в шаблоне даты, автоматически пре образуется в промежуточное значение - стандартную дату.

Функция YEAR возвращает четыре цифры номера года для заданной стандартной даты (1801 to 2099).
Возвращаемый тип данных: LONG
Пример:
IF YEAR(LastOrd) < YEAR(TODAY())
!Если дата последнего счета не в этом году,
DO StartNewYear ! то начнем новый год
.
См. также: