Тоже что и dbedit, но обрабатывает двумерный массив.
str=addslashes(str)
Returns a string with backslashes before characters that need to be quoted
in database queries etc. These characters are single quote ('), double quote
("), backslash (\) and NUL (the null byte).
ASCAN
тоже что и обычный ascan, только добавлен еще один параметр "искать с конца".
BETWEEN
between(value,min,max) - возвращает находиться ли значение value в пределах
от min до max или от max до min. Сравнивает любые типы данных.
CLIP
clip("funcname",param1,param2,....paramN) -
запускает функцию funcname, передает ей параметры param1....paramN и
возвращает то значение, которое возвращает funcname. Пример
clip("substr","asdfghjkl",2,3) // -> "sdf"
CSCOUNT
cscount(char,string) - возвращает кол-во char в string
compileFile(filename,flags,@error)
Компилирует файл filename с ключами компилятора flags, описание ошибок
складывает в error, возвращает .t. | .f.
compileString(str,@error)
компилирует строку str, возвращает кодовый блок, описание ошибки
складывает в error.
В компилируемой строке могут быть любые конструкции, команды и т.п.
Вообщем все что может переварить clip, потому-что он и вызывается :).
НО !!! В этой строке не может быть объявлений нестатических функций,
начинатся она должна с приема параметров без каких либо описаний
названия функции или процедуры. Примерно так:
str:="
parameters p1,p2
qout(p1,p2)
localfunc1(p1,p2)
return p1+p2
static function localfunc1(fp1,fp2)
qout("called local function in string compiled block")
return p1-p2"
block:=compileString(str,@err)
if empty(err)
x:=eval(block,1,2) // выведет значения p1 и p2
? x //выведет значение p1+p2
else
? err // описание ошибки
endif
loadblock(filename.po)
читает filename.po и выдает на выходе блок кода.
filename.po можно получить скомпилировав
clip -p filename.prg
правила и структура filename.prg должна соответсвовать правилам
для строки из функции compileString().
DBRANGE
dbrange(index_name,min_value,max_value) - устанавливает ограничение для
навигационных функций (skip,locate,...) по значению индекса. Практически
эта функция является эквивалентом setfilter, но работает только по тем
значениям, которые есть в качестве ключей в индексном файле и исполняется
на несколько порядков быстрее.
DOSPATH
dospath( unix_file_name ) - возвращает досовское имя файла в соответствии
с назначениями дисков, сделанными через set( "C:", ... )
dStrToN
dStrToN( string ) - преобразует строку с double-представлением в clipper-число.
Например:
fread(file,@str,8)
n=dStrToN(str)
fStrToN
fStrToN( string ) - преобразует строку с float-представлением в clipper-число.
Например:
fread(file,@str,4)
n=fStrToN(str)
FILEATTRS
fileattrs(filename) - работает как fileattr, только вместо цифрового
кода атрибутов файла возвращается строка символов: A - архивный,
H - скрытый, R - только чтение, D - каталог
FILEDIALOG, DISKFILEDIALOG
filedialog(dir,mask) - предоставляет диалог для выбора файла, начиная с
каталога dir, предоставляя для выбора файлы, удовлетворяющие маске mask.
diskFileDialog(driver,drv,dir,mask) - также как и filedialog - выбирает
нужный файл, но еще предоставляет возможность выбирать и диск, на котором
выбирать файл. driver - список дисков, drv - номер текущего диска.
FILEGETSTR
filegetstr(fhandle,max_size) - читает из файла, ранее открытого FOPEN(),
строку ограниченную CRLF или CR, но не более max_size символов.
FACCESS
fACCESS(filename,mode) - проверяет имеется ли доступ к filename с правами
mode в виде rwx-rwx-rwx.
GLOB
glob(str,pattern, caseflag) - проверяет соответсвует ли str регулярному
выражению pattern с учетом или без учета регистра символов.
Поддерживает только упрощенные регулярные выражения.
HASHSTR
hashstr(str_value) - выдает число от 1000000 до MAX_LONG, которое почти
гарантировано имеет уникальное значение.
HASHNAME
hashName(hash_value) - возвращает значение из которого был получен это
значение hash_value
Все функции GZIP*() вынесены в отдельную динамически загружаемую библиотеку
gzip.so, обязательно перед первым вызовом любой из функций GZIP*() надо делать
load("gzip.so").
GZIPOPEN
gzipOpen(filename [,mode]) - открывает GZIP файл с именем filename и режимом
mode, по умолчанию на чтение.
Mode могут быть следующими:
"rb" - чтение в бинарном режиме
"wbX" - запись со степенью упаковки X в диапазоне от 0 до 9
GZIPREAD
gzipRead(handle, @buffer [,len]) - читает и распаковывает данные из открытого
GZIP файл с номером handle в заранее выделенный буффер buffer len байт.
s:=space(1000)
realLen=gzipRead(h,@s,300)
GZIPWRITE
gzipWrite(handle, str_data [,len]) - запаковывает len байт из str_data
и записывает в GZIP-файл. Обязятельно надо явно вызвать gzipclose(), чтобы
сбросились все буфера !!!
inlist(value,p1,p2,...pn) - возвращает иммется ли среди p1...pn значение value.
ISFIELD
isfield("varname") - возвращает, является ли данное имя переменной связанной
с именем поля в данный момент выполнения программы.
ISFUNCTION
isfunction("func_name") - возвращает, является ли данное имя функцией, т.е.
возможно ли вызвать функцию с именем func_name.
ISMEMVAR
isfield("varname") - возвращает, является ли данное имя переменной связанной
с переменной памяти (PRIVATE,PUBLIC) в данный момент выполнения программы.
LIKE
like(mask,string) - возвращает, соответсвует ли string маске. В качестве
маски могут быть спецсимволы *,?,.
LOAD
Load("filename.po") - зачитывает po-файл (внешний кодовый блок) и регистрирует
все не-статик функции, объявленные в этом модуле, доступными для дальнейшего
использования как и обычные клиппер-функции.
Load("filename.so") - зачитывает динамическую библиотеку во время работы
программы, и делает доступными клиппер-функции.
MAP
map() - создает пустой объект (ассоциативный массив)
MAPMODIFY
map(map_obj, [ .t. | .f. ]) - включает / отключает режим котроля изменений
атрибутов объекта, возвращает старое значение режима.
В случае если у объекта map_obj имеется метод modify, то при включенном
контроле перед попыткой изменить атрибут объекта будет вызываться
map_obj:modify(hash_attrib, new_value ) и этот метод должен вернуть
новое значение, которое надо прописать в атрибут с hash-кодом hash_attrib.
MAKEPATH
makepath(dos_path) - возвращает юниксовый путь для заданного dos-пути.
Например makepath("c:\clip\ca_dbu") выдаст /usr/home/uri/clip/ca_dbu
MEMVARGET
memvarget(varname) -> возвращает значение MEMVAR переменной varname
MEMVARSET
memvarset(varname,data) -> устанавливает значение MEMVAR переменной с именем
varname в значение data, возвращает успешно ли проведено данная операция
PARAM
param(i) - возвращает значение i-того параметра функции, очень часто это
избавляет от использования макроподставновок.
RUN_BLANK
run_blank(filename,stdinFlag) - интерпретирует шаблон документа и выводит его
либо на stdin либо во временный файл, возвращает имя файла с готовым документом.
_run_blank(intext,stdinFlag) - тоже самое делает со входной строкой intext.
SEARCH
Поиск по регулярному выражению в строке.
search(pattern, string[, reg[, from[, range]]])
pattern - шаблон поиска
string - строка, где ищется регулярное выражение
reg - регистр - массив, куда будет записан результат поиска
reg[i][1] - начало регулярного выражения
reg[i][2] - конец
reg[i][3] - длина
from - позиция, с которой начинать искать
range - это значение сдвигов, при которых проверяется совпадение,
относительно from; т.е. при range==0 проверяется только позция from;
при range==1 проверяются позиции from, from+1; при range==-1
проверяются позиции from, from-1
Функция возвращает .t. -в случае успешного поиска и .f. в противном
случае.
SET
Как и раньше функция set возвращает предыдущее значение.
1. set(_SET_LOGLEVEL) - устанавливает уровень логирования для функции outlog()
2. set(_SET_LOGFILE, filename) - устанавливает имя файла для записи лог-информации
3. set(string_key,string_value) - для любой произвольной строки-ключа запоминает
любую произвольную строку-значение. Будьте внимательны - запоминаются только строковые
значения
4. set(dos_hdd,unix_path) - устанавливает соотвествие между именем диска в DOS и
пути в юниксовых системах.
Например set("C:","/usr/home/uri") назначит диску C: путь /usr/home/uri.
STARTPATH
Возвращает полный путь и имя стартовавшей программы.
SLEEP
sleep(sec.msec) - останавливает выполнение программы на заказанное количество
секунд и милисекунд. Никакой гарантии что программа будет остановлена на
данное кол-во МИЛЛИСЕКУНД не дается. Разве что в тех операционных системах,
где такие гарантии могут быть предоставлены.
STACK - class
o:=stackNew() - создает новый стек
o:push(var_data) - добавляет в стек новые данные
o:pop() - выдает последнее значение, положенное в стек и удаляет его
o:len() - выдает длину стека
o:free() - очищает все данные в стеке
START() - start task
start("funcname"| {||codeblock} | @funcname(),par1,...parN) - запускает в паралельном
режиме функцию funcname или кодовый блок или адрес статической функции
и передает ей параметры par1,...parN.
TASKSTOP(), TASKSTART()
Останавливает/распускает выполнение всех task`ов кроме текущего,
SYSCMD
syscmd(cmd,stdin_string,@res_buf,@err_buf) - выполняет системную команду, посылает этой
команде на стандартный входной поток stdin_string, записывает в err_buf
все что выводиться в stderr, записывает в res_buf весь вывод stdout
и возвращает значение, возвращаемое cmd.
res_buf и err_buf не могут быть объявлены как константы
Например:
err_buf=space(0)
res_buf=space(0)
result_code=syscmd("grep -i uri ","тут был uri",@res_buf,@err_buf)
ulimit(limit_info,limit_value)
устанавливает ограничение на использование пользователем системных
ресурсов. Возможные значения limit_info описаны в ulimit.ch.
Возвращает старое значение limit_info.
MEDIT
medit(par, ntop, nleft, nbot, nright, user_func, tab_size, bline, bpos, wline, wpos)
многооконный текстовый редактор с менюшками и прибамбасами, построен на базе
класса TEXTEDIT. Более подробное описание см. здесь
TCPconnect(host,port,timeout)
Соединяется с сервером host и создает сокет к порту port, возвращает номер
соединения или -1. ferror() хранит номер ошибки соединения
TCPread(sHandle,@buffer,len,timeout)
Аналогично fread() читает в buffer данные из соединения, возвращает кол-во
прочитанных байт или -1. ferror() хранит номер ошибки чтения
TCPwrite(sHandle,data,len,timeout)
Аналогично fwrite() пытется передать данные в соединение, возвращает кол-во
переданных байт или -1. ferror() хранит номер ошибки записи
TCPclose(sHandle)
закрывает соединение
weightTable
weightTable() - выдает весовую таблицу, используемую в сравнении строк, индексации,
регулярных выражениях и т.п.
weightAsc
weightAsc(string) - выдает весовую характеристику первого символа строки.
weightChr
weightChr(num) - выдает строку из одного символа, соответсвующего переданной
весовой характеристике.