Google

Описание новых функций

A2EDIT

Тоже что и 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

gd*()

Пакет функций gd*() для работы с файлами png,jpeg..... и набор функций для генерации графических примитивов прямоугольники, окружности, линии, ....
Оригинальная документация самой библиотеки libgd
Clipper-функции, аналогичные С-ишным
Класс gdImage - обработка графических файлов

gzip.so

Все функции 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(), чтобы сбросились все буфера !!!

GZIPCLOSE

gzipClose(handle) - закрывает GZIP-файл

HTML-класс и HTML_TAG-класс

INLIST

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) - выдает строку из одного символа, соответсвующего переданной весовой характеристике.

uucode,uudecode,var2str,str2var


© Ю.Хныкин, uri@itk.ru, 2000