23 | 07 | 2017

 ГЛАВА 6. Функции Clipperа (часть 3)

PCOUNT() 
Синтаксис: PCOUNT() 

Цель: Определить количество фактических параметров, переданных
процедуре или пользовательской функции.

Возвращает: Целую числовую величину.

PCOUNT() возвращает количество переданных параметров. Если не
передано ни одного параметра, PCOUNT() возвращает ноль.
Отметьте, что PCOUNT() возвращает величину, только когда Вы
передаете параметры процедуре или пользовательской функции.

Примеры: PARAMETERS file 
IF PCOUNT()=0
ACCEPT "Используемый файл :" TO file
ENDIF
USE &file

Библиотека: CLIPPER.LIB
Смотри
также: DO...WITH, PARAMETERS.

PROCLINE()

Синтаксис: PROCLINE()

Цель:
PROCLINE() возращает номер текущей строки исходного текста
текущей программы.

Возвращает: Целую числовую величину.

Если Вы компилируете Вашу программу не отображая номера строк
исходного текста программы (при компиляции указана опция -l),
то PROCLINE() возвращает непредсказуемую величину.

Для получения более подробной информации обращайтесь к главе 7
"Компиляция и Линковка".

Примеры: ? PROCLINE(),"memvar +",memvar

Библиотека: CLIPPER.LIB
Смотри
также: PROCNAME().


PROCNAME()

- 191 -

Синтаксис: PROCNAME()

Цель:
PROCNAME() возвращает имя текущей программы или процедуры,
выполняемой в настоящее время.

Возвращает: Символьную строку.

Примеры: ? "Текущая процедура: ", PROCNAME()

Библиотека: CLIPPER.LIB
Смотри
также: PROCLINE().


PROW()

Синтаксис: PROW()

Цель:
Возвратить номар строки текущей позиции печатающей головки
принтера.

Возвращает: Целую числовую величину.

EJECT сбрасывает PROW() в ноль. Если Вам необходимо сбросить
внутреннюю величину значения печатающей колонки без
применения EJECT, используйте SETPRC(). Знайте, что если Вы
перемещаете печатающую головку посредством CHR(10), Клиппер
не знает об этом и PROW() не возвращает ожидаемую величину.

Использование:
PROW() позволяет Вам сохранить номер строки положения
печатающей головки. Это удобно, когда Вам нужно разместить
один текст на какой-либо строке относительно конца другого
текста.

Примеры: SET DEVICE TO PRINT
@ 10, 0 SAY "Первая строка."
@ PROW()+1, 0 SAY "Вторая строка."

Результат:

Первая строка.
Вторая строка.

Библиотека: CLIPPER.LIB
 Смотри также:
SET PRINT, SET DEVICE, PCOL(), COL(), ROW(), SETPRC(). 


RAT()

- 192 -

Синтаксис: RAT(<вырС1>,<вырС2>)

Цель: Найти последнее вхождение подстроки в символьной строке и
вернуть номер начальной позиции.

Аргументы: <вырС1> - подстрока, вхождение которой ищется.
<вырС2> - строка, в которой осуществляется поиск.

Возвращает: Целую числовую величину.

Если подстрока содержится внутри указанной строки, RAT()
возвращает позицию первого символа последнего вхождения
подстроки. Если подстрока не содержится внутри строки, то RAT()
возвращает ноль.

Использование:
RAT() аналогична функции AT() за исключением того, что
сканирование строки осуществляется справа до обнаружения
последнего вхождения подстроки.

Примеры: fname = "C:\DBF Sales.dbf"
? SUBSTR(fname, 1, RAT("\", fname)) && Результат: C:\DBF\

Библиотека: EXTEND.LIB
Смотри
также: AT(), STRTRAN(), SUBSTR(), $.


READVAR()

Синтаксис: READVAR()

Цель: Определить текущую переменную в командах GET/MENU.

Возвращает: Символьную строку.

READVAR() возвращает имя (заглавными буквами) текущей переменной
в командах GET/MENU или пустую строку ("").

Использование:
READVAR() используется главным образом для отладочных целей или
в программах, использующих установку SET KEY.

Примеры: В следующем примере, после нажатия клавиши F2 начинает
выполняться процедура Getname и текущая переменная команды GET
высвечивается на строке 23:

a = SPACE(10)
b = SPACE(20)
SET KEY -1 TO Getname && Установка клавиши F2 на Getname.
@ 5,5 SAY "A: " GET a
@ 6,5 SAY "B: " GET b
READ
RETURN

- 193 -

PROCEDURE Getname
@ 23, 0
@ 23, 0 SAY "Getfield = " + READVAR()
INKEY(0)
@ 23, 0
RETURN

Библиотека: CLIPPER.LIB
Смотри
также: @..GET, READ, SET KEY.

RECNO() 

Синтаксис: RECNO()

Цель: Определить номер записи в текушей рабочей области.

Возвращает: Целую числовую величину.

Если файл базы данных не содержит записей RECNO() возвращает 1
и обе функции BOF() и EOF() возвращают "истину"(.T.).
Если указатель записи установлен на позиции за последней записью
в файле (например посредством SKIP), RECNO() возвращает значение
LASTREC()+1 и EOF() возвращает "истину"(.T.). Если была сделана
попытка установить указатель записи перед первой записью в
начале файла, функция RECNO() возвращает 1, а BOF() возвращает
"истину"(.T.).

Использование:
RECNO() удобна, когда Вы собираетеся определить номер записи
в момент работы программы.

Примеры: USE Customers
GO 3
record = RECNO()
? RECNO()
GO record
? RECNO()
GO TOP
? RECNO()

Библиотека: CLIPPER.LIB
Смотри
также: BOF(), EOF().


REPLICATE()

Синтаксис: REPLICATE(<вырС>,<вырН>)

Цель: Повторить символьную строку указанное число раз.

- 194 -

Аргументы: <вырС> - повторяемая символьная строка.
<вырН> - количество раз, которое нужно повторить строку <вырС>.

Возвращает: Символьную строку.

Максимальный размер возвращаемой строки 65535 байтов (64К).
Указывая ноль в качестве аргумента повторения, Вы получите
пустую строку.

Использование:
REPLICATE() полезна везде, где Вы хотите повторить многократное
высвечивание или печать одного и того же символа, либо для того,
чтобы забить в какую-либо клавишу более одного символа.

Примеры: ? REPLICATE("*", 5) && Результат: *****
? REPLICATE("Hi", 5) && Результат: Hi Hi
? REPLICATE(CHR(42), 5) && Результат: *****

Библиотека: CLIPPER.LIB
Смотри
также: SPACE().


RLOCK()/LOCK()

Синтаксис: RLOCK()/LOCK()

Цель: Залокировать текущую запись в текущей рабочей области.

Возвращает: Логическую величину.

RLOCK() возвращает "истину"(.T.), если Вы успешно залокировали
запись. В противном случае возвращает "ложь"(.F.).
Использование:
RLOCK() текущую запись в выбранной рабочей области. Локирование
сохраняется до тех пор, пока не встретится команда UNLOCK,
CLOSE DATABASE или FLOCK(). Отметьте, что в отличии от dBASEIII
PLUS, RLOCK() не локирует другие рабочие области, связанные с
текущей.
Для получения более подробной информации обращайтесь к главе 10.

Примеры: IF RLOCK()
DELETE
ENDIF

Библиотека: CLIPPER.LIB
Смотри
также: USE..EXCLUSIVE, SET EXCLUSIVE, UNLOCK, FLOCK().

ROUND() 

Синтаксис: ROUND(<вырН1>,<вырН2>)


- 195 -
Цель: Вернуть значение, округленное до указанного количества
десятичных знаков.

Аргументы: <вырН1> - округляемое численное выражение.
<вырН2> - количество знаков после запятой.

Возвращает: Числовую величину.

ROUND() округляет <вырН1> до количества знаков, задаваемых
<вырН2>. Указывание нуля или отрицательной величины для <вырН2>
вывзывает округление всего числа. Отрицательное <вырН2>
показывает количество знаков слева от запятой, до которых
производится округление.
Высвечивание результатов округления не подчиняется установке
SET DECIMALS до тех пор, пока SET FIXED установлен в ON. Если
FIXED установлен в OFF, высвечисаемая возвращаемая величина
содержит столько десятичных знаков, сколько указано в <вырН2>
или ноль, если <вырН2> меньше 1.

Отметьте, что Клиппер округляет всегда в большую сторону.

Использование:
ROUND() полезна тогда, когда Вы хотите использовать число с
меньшей точностью, чем оно имеет на самом деле.

Примеры: SET DECIMALS TO 2
SET FIXED ON
? ROUND(10.10, 0) && Результат: 10.00
? ROUND(10.49999999, 0) && Результат: 10.00
? ROUND(10.51, 0) && Результат: 11.00
? ROUND(10.51, -2) && Результат: 0.00
? ROUND(101.99, -1) && Результат: 100.00
? ROUND(109.99, -1) && Результат: 110.00
? ROUND(109.99, -2) && Результат: 100.00

Библиотека: CLIPPER.LIB
Смотри
 также: INT(). 

ROW()

Синтаксис: ROW()

Цель: Вернуть номер строки текущего положения курсора на экране.

Возвращает: Целую числовую величину.

ROW() возвращает число в пределах от 0 до 24, где 0 - номер
первой высвечиваемой строки экрана. Когда Вы очищаете экран
посредством CLEAR, ROW() возвращает ноль. После отработки
команды READ, ROW() возвращает 23.

Использование:
ROW() удобна, когда Вы используете относительную адресацию для
позиционирования курсора. Например, выражение:


- 196 -
@ ROW()+5, 1 SAY SPACE(0)

устанавливает курсор на пять строк ниже текущего положения.

Примеры: @ 1, 1 SAY "Это строка "
@ ROW(), COL()+1 SAY "первая"
@ ROW()+1, COL()+1 SAY "Это строка вторая"

Результат:

Это строка первая
Это строка вторая

Библиотека: CLIPPER.LIB
Смотри
 также: @...SAY/GET, COL(), PCOL(), PROW(). 

SCROLL()

Синтаксис: SCROLL(<вырН1>,<вырН2>,<вырН3>,<вырН4>)

Цель:
Назначить область экрана, внутри которой будет осуществляться
режим скролирования (перескока) строк вверх, вниз или очищение.

Аргументы: <вырН1> - верхняя граница окна.
<вырН2> - левая граница окна.
<вырН3> - нижняя граница окна.
<вырН4> - правая граница окна.
<вырН5> - количество скролирующих строк. Число больше нуля,
вызывает перескок вверх на указанное число строк. Число меньше
нуля вызывает перескок вниз на указанное количество строк.
Нулевая величина очищает выделенную область экрана.

Возвращает: Нет возвращаемых величин.

Использование:
SCROLL() удобна для эмулирования работы в окне с режимом
прокрутки. Она может быть полезна для прокрутки строк окна
вверх в начале окна или вниз в конце.

Примеры: @ 5, 10 SAY "Тест прокрутки."
INKEY(0) && Ожидание нажатия клавиши.
SCROLL(3,10,10,30,1) && Прокрутка вверх на одну строку.
INKEY(0) && Ожидание нажатия клавиши.
SCROLL(3,10,10,30,-4) && Прокрутка вниз на 4 строки.
INKEY(0) && Ожидание нажатия клавиши.
SCROLL(3,10,10,30,0) && Очистка окна.

Библиотека: EXTEND.LIB
Смотри
также: @...CLEAR..TO, @...BOX, @..TO..[DOUBLE].


 - 197 - 

SECONDS()

Синтаксис: SECONDS()

Цель: Определить количество секунд, прошедших с 24:00:00.0.

Возвращает: Числовую величину.

SECONDS() возвращает системное время в виде "секунды.сотые".
Числовая величина возвращает количество секунд, прошедших с
полночи, и базируется на суточных 24-х часах. Возвращаемая
величина находится в пределах от 0 до 86399.

Использование: Числовая величина, возвращаемая SECONDS(), двет простой
способ вычисления времени выполнения какой-либо программы.

Примеры: ? TIME() && Результат: 10:00:00
? SECONDS() && Результат: 36000.00
*
start = SECONDS()
DO Process
elapsed = SECONDS()-start
? "Процедура Process выполнялась "+STR(elapsed)+" секунд."

Библиотека: CLIPPER.LIB
Смотри
 также: TIME(). 

SELECT()

Синтаксис: SELECT()

Цель: Возвратить номер текущей рабочей области.

Возвращает: Целую числовую величину.

SELECT() возвращает числовую величину в диапазоне от 0 до 254.
Если в текущей рабочей области открыт не файл базы данных, то
SELECT() все равно возвращает номер текущей рабочей области.

Примеры: ? SELECT() && Результат: 1
SELECT 4
? SELECT() && Результат: 4

Для того, чтобы выбрать еще раз необходимую рабочую область с
номером, полученным из SELECT(), используйте команду SELECT()
со следующим синтаксисом: SELECT(<перем>). Например:

USE File1
last_area = SELECT()
SELECT()
use File2

- 198 -
SELECT(last_area)
? SELECT() && Результат: 1

Библиотека: CLIPPER.LIB
Смотри
также: SELECT,USE,ALIAS().


SETPRC()

Синтаксис: SETPRC(<вырН1>,<вырН2>)

Цель: Установить внутреним счетчикам PROW() и PCOL() новые
значения.

Аргументы: <вырН1> - новое значение номера строки.
<вырН2> - новое значение номера колонки.

Возвращает: Нет возвращаемых величин.

Эта функция может быть полезна для пересылки установочной
строки на принтер без изменения текущего положения печатающей
головки принтера. Кроме этого, она может быть использована для
подавления автоматического перевода страниц.

Примеры: SET PRINT ON
row = PROW()
col = PCOL()
?? CHR(15)
*
SETPRC(row, col)

Библиотека: CLIPPER.LIB
Смотри
также: SET DEVICE TO PRINT, PROW(), PCOL().

SPACE()

Синтаксис: SPACE(<вырН>)

Цель: Вернуть строку пробелов.

Аргументы:
<вырН> - количество возвращаемых пробелов; может быть до 65535
(64К).

Возвращает: Символьную строку.

SPACE(0) возвращает пустую строку ("").

Использование:
SPACE() многоплановая символная функция и, следовательно,

- 199 -
может быть использована для большого количества приложений, как
то:
Инициализация переменной для ввода данных

m_cust = SPACE(LEN(Customer))
@ 10,10 SAY "" GET m_cust
READ

Форматирование строк. Следующий пример показывает выравнивание
по правому краю внутри определенной колонки.

number = "12345"
col_width = 12
? SPACE(col_width - LEN(LTRIM(number))) + LTRIM(number)

Создание функции выставляющей курсор без нарушения экрана.

FUNCTION Cursor
PARAMETERS row, col
@ row, col SAY SPACE(0)
RETURN ' '

Примеры: ? LEN(SPACE(20)) && Результат: 20
? SPACE(5) + "Строка из 5 пробелов"

Результат:

Строка из 5 пробелов

Библиотека: CLIPPER.LIB
Смотри
также: REPLICATE().

SQRT()

Синтаксис: SQRT(<вырН>)

Цель: Получить квадратный корень указанного числового выражения.

Аргументы:
<вырН> - числовое выражение, из которого вычисляется квадратный
корень. SQRT() оперирует только с положительными величинами.

Возвращает: Числовую величину.

Величина возвращаемая SQRT(), содержит количество десятичных
знаков либо принимаемых по умолчанию (2), либо равное числу
десятичных знаков в указанном числовом выражении.

SQRT() применяется в математических вычислениях.

Примеры: SET DECIMALS TO 5
? SQRT(2) && Результат: 1.41421
? SQRT(4) && Результат: 2.00000
? SQRT(4) ** 2 && Результат: 4.00000

- 200 -
? SQRT(2) ** 2 && Результат: 2.00000

Библиотека: EXTEND.LIB
Смотри
также: SET DECIMAL, SET FIXED.


STR()

Синтаксис: STR(<вырН1>[,<вырН2>[,<вырН3>]])

Цель: Преобразовать числовое выражение в символьную строку.

Аргументы: <вырН1> - преобразовываемое числовое выражение.
<вырН2> - Длина возвращаемой символьной строки, включая
десятичные знаки, десятичную точку и знак минуса.
<вырН3> - число возвращаемых десятичных позиций.

Возвращает: Символьную строку.

Если аргументы длины и десятичных знаков не указаны, STR()
возвращает строку цифр из 10 символов, включая предшестаующие
пробелы. Число десятичных знаков такое же как и у числового
выражения.
Если Вы указали <вырН2> меньше, чем общее количество <вырН1>,
STR() возвращает строку звездочек (****) вместо цифр.
Если Вы указали <вырН2> меньше, чем количество деcятичных
знаков в числовом выражении, Клиппер округлит число до
необходимой точности.
Если Вы указали <вырН2>, но опустили <вырН3> (нет десятичных
знаков), возвращаемая величина будет округлена до целого.

ФУНКЦИИ С ДАТАМИ.
Функция STR() от YEAR(), MONTH() и DAY() возвращает результаты,
отличные от результатов других числовых выражений. STR() от
MONTH() и DAY() возвращает строку длиной 3 символа. STR() от
YEAR() возвращает стринг длиной 5 символов.

Использование:
STR() удобна, когда Вам нужно высветить или распечатать
результаты числовых выражений.

Примеры: number = 123.45
? STR(number) && Результат: 123.45
? STR(number,4) && Результат: 123
? STR(number,2) && Результат: **
? STR(number,0) && Результат: пустая строка
? STR(number * 10, 7, 2) && Результат: 1234.50
? STR(number * 10, 12, 4) && Результат: 1234.5000

Библиотека: CLIPPER.LIB
Смотри
также: SUBSTR(), VAR().

STRTRAN()


- 201 -
Синтаксис: STRTRAN(<вырС1>,<вырС2>[,<вырС3>][,<вырН1>][<вырН2>])

Цель: Найти и сделать замену в символьной строке.

Аргументы:
<вырС1> - просматриваемая строка.
<вырС2> - последовательность символов, которая ищется.
<вырС3> - последовательность симаолов, на которую заменяется
последовательность <вырС2>. Если не указана, то каждое
вхождение <вырС2> заменяется пустой строкой ("").
<вырН1> - номер первого вхождения, начиная с которого
выполняются замены.
<вырН2> - количество заменяемых вхождений. Если не указано, то
по умолчанию заменяются все вхождения.

Возвращает: Символьную строку.

Использование:
STRTRAN() осуществляет стандартный поиск подстроки внутри
строки. Если найдено соответствующее вхождение, то производится
замена.

Отметьте, что STRTRAN() заменяет только подстроки, а не полные
стринги. Кроме этого установка SET EXACT ON не действует на
выполнение этой функции. STRTRAN() всегда выполняется так, как
если бы SET EXACT был установлен в OFF.

Примеры: string = "To be, or not to be"
? STRTRAN(string, "be", "compute")

Результат:

To compute, or not to compute

Библиотека: CLIPPER.LIB
Смотри
также: AT(), RAT(), SUBSTR(), $.


SUBSTR()

Синтаксис: SUBSTR(<вырС>,<вырН1>[,<вырН2>])

Цель: Вернуть часть символьной строки.

Аргументы:
<вырС> - исходная символьная строка. Максимальная длина строки,
которая может содержать подстроку, равна 65535 байтов (64К) -
максимальная длина символьной строки в Клиппере.
<вырН1> - начальная позиция подстроки в строке. Если начальная
позтцтя положительна, то номар позтцтт отсчитывается от начала
строки. Если отрицательна - от конца.
<вырН2> - количество возвращаемых символов. Если этот аргумент
опущен, то подстрока заканчивается концом строки. Если он больше,
чем количество символов от начальной позиции до конца строки,
то он игнорируется.


- 202 -
Возвращает: Символьную строку.
Использование:
SUBSTR() удобна, когда Вам нужно высветить или отпечатать
только часть строки.

Примеры: char = "this is a string"
*
? SUBSTR(char, 1, 4) && this
? SUBSTR(char, 6) && is a string
? SUBSTR(char, LEN(char)+2) &&
? SUBSTR(char, -6) && string
? SUBSTR(char, -6, 3) && str

Библиотека: CLIPPER.LIB
Смотри
также: AT(), RAT().



TIME()
Синтаксис: TIME()

Назначение:
Возвращает системное время, как символьную строку в формате
"чч:мм:сс".

Пример:
? TIME() && Результат: 10:37:17
? SUBSTR(TIME(),1,2) && Результат: 10
? SUBSTR(TIME(),4,2) && Результат: 37
? SUBSTR(TIME(),7,2) && Результат: 17

Библиотека: CLIPPER.LIB

См.также: SECONDS(), DATE().


TRANSFORM()

Синтаксис : TRANSFORM(<выр>,<вырC>)

Назначение:
Форматирование результатов выражений различных типов данных.
Аргументы:
<выр> - символьное, дата или числовое выражение, предназначенное
для форматирования.
<вырС> - определяет тип формата возвращаемой строки.
Использование:
Возвращает символьную строку. Позволяет форматировать вывод
выражений любого типа, таким же образом, как это делает
@...PICTURE (с помощью специальных функций или шаблонов). См.
@...PICTURE для детальной информации.

Таблица функций.
-----------------------------------------------------------------

- 203 -
Функция Действие
-----------------------------------------------------------------
В Левое выравнивание чисел.
С Индикация CR после положительного числа.
D Индикация даты в формате SET DATE.
E Вывод даты в формате British.
R Вставляются символы, не входящие в шаблон.
Х Вывод DB после отрицательного числа.
Z Вывод пробелов вместо нуля.
( Отрицательные числа выводятся в скобках.
! Перевод символов нижнего регистра в верхний.
-----------------------------------------------------------------

Таблица шаблонов.
-----------------------------------------------------------------
Шаблон Действие
-----------------------------------------------------------------
A,N,X,9,# Вывод цифр для любого типа данных.
L Вывод логических величин в виде "T","F".
Y Вывод логических величин в виде "Y","N".
! Перевод в верхний регистр.
$ Вывод $ в числах на местах прешествующих пробелов
* Вывод * в числах на местах прешествующих пробелов
. Определяет позицию десятичной точки.
, То же для запятой.
-----------------------------------------------------------------
Примеры:
Форматирование с использованием шаблона:

? TRANSFORM(123456, "$999,999") && Результат: $123,456

Форматирование с использованием функции:

? TRANSFORM("to upper", "@!") && Результат: TO UPPER

Библиотека: CLIPPER.LIB

См.также: @...PICTURE, LOWER(), STR(), UPPER().

TRIM()/RTRIM()

Синтаксис: TRIM(<вырC>)/RTRIM(<вырC>)

Назначение: Удаляет последующие пробелы из символьных выражений.

Аргумент: <вырC> - символьная строка.
Использование:
Возвращает символьную строку. Удобно удалить такие пробелы перед
объединением двух строк. Можно использовать TRIM() в проверке на
"нулевую" строку:

LEN(TRIM(<вырC>)

Библиотека: CLIPPER.LIB


- 204 -
См.также: LTRIM(), SUBSTR().


TYPE()

Синтаксис: TYPE(<вырC>)

Назначение: Возвращает тип указанного выражения.

Аргумент: <вырC> - поле, переменная или выражение любого типа.

Таблица возвращаемых значений.
-----------------------------------------------------------------
Значение Пояснение
-----------------------------------------------------------------
U Неопределено.
Переменная без значения.
Ссылка на массив.
Пользовательская функция.
IF()/IIF()
C Символ.
D Дата.
L Лог.
N Число.
М Memo-поле.
А Массив.
-----------------------------------------------------------------

Примеры:
? TYPE("Alias_name -> Fldvar")
? TYPE("SUBSTR([Hi There], 4, 5)") && Результат: C
? TYPE("UDF()") && Результат: U

Библиотека: CLIPPER.LIB.


UPDATED()

Синтаксис: UPDATED()

Назначение:
Определяет, был ли изменен какой-либо GET последним или текущим
READ.
Использование:
Возвращает логическую величину .T., в случае наличия изменений.

Пример:
USE Accounts
m_id = id
@ 1, 0 SAY "Введите новый ID" GET m_id
READ
IF UPDATED()
REPLACE Id WITH m_id

- 205 -
ENDIF

Библиотека: CLIPPER.LIB

См.также: @...GET, READ.


UPPER()

Синтаксис: UPPER(<вырC>)

Назначение: Перевод символов выражения в верхний регистр.

Аргумент: <вырC> - строка символов.

Использование:
Удобно использовать при сравнении строк, когда заранее
неизвестен их регистр.
Пример:
message = "Greetings"
? UPPER("greetings") = UPPER(message)

Библиотека: CLIPPER.LIB

См.также: LOWER().


VAL()
Синтаксис: VAL(<вырC>)

Назначение: Переводит цифры в символьном выражении в число.

Аргумент: <вырC> - символьное выражение.

Использование:
VAL() начинает обрабатывать выражение с начала и заканчивает в
случае нахождения: второй десятичной точки/первой "не
цифры"/конца выражения.
Пример:
SET DECIMALS TO 2
SET FIXED ON
? VAL("12.1234") && Результат: 12.12
? VAL("12а1234") && Результат: 12.00

Библиотека: CLIPPER.LIB

См.также: SET DECIMALS, STORE, STR(), SUBSTR(), TYPE().

WORD()

Синтаксис: WORD(<вырN>)

Назначение:
Перевод числовых параметров CALL-команды из типа DOUBLE в INT.


- 206 -
Аргумент: <вырN> - число DOUBLE.

Использование:
Удобно для уменьшения объема памяти под перемнные в вызываемой
процедуре. Необходимо помнить, что число не должно превышать по
модулю величины 32 767.

Пример:
CALL C_proc WITH WORD(30000)

Библиотека: CLIPPER.LIB

См.также: CALL.


YEAR()

Синтаксис: YEAR(<вырD>)

Назначение: Выделяет из даты год.

Аргумент: <вырD> - дата.

Использование:
Удобно при производстве арифметических действий с датами.

Пример:

? DATE() && Результат: 09/01/87
? YEAR(DATE()) && Результат: 1987
? YEAR(DATE()) + 14 && Результат: 2001

Библиотека: CLIPPER.LIB

См.также: SET CENTURY, CDOW(), DOW(), CMONTH(), MONTH(), DAY(),
 CTOD(), DTOC(), DTOS(), DATE(). 

- 207 -


Комментарии  

0 #1 Альберт 10.10.2012 16:46
Спасибо большое за ваш сайт, мне он в жизни очень помогает!

Не могли бы вы сказать почему в параграфе Функции Clipperа (часть3)опублик ован все тот же предыдущий параграф Функции Clipperа (часть2)? Спасибо заранее!
Цитировать
0 #2 Admin 02.11.2012 08:06
Была ошибка, спасибо что подсказали. Исправлено
Цитировать