Main Библиотека функций rFunc
История изменений

Условные обозначения:
+ добавлено
- удалено
# изменено
* исправлены ошибки
====================================================================
Версия 2.1.3.1 RC 25.11.2003
--------------
1.# Теперь память для результирующей строки выделяется ровно столько, сколько нужно.
2.* Исправлена WordCount, теперь верно возвращает количество слов при
третьем параметре равным единице.
3.* Исправлена StrStuff LongStrStuff, не удалялся последний символ из
входной строки.
4.+ Функция b_TextPos - аналог b_StrPos, только поиск регистронезависимый.
5.+ Функция fRemove - удаление файла.
6.+ Тригонометрические функции - acos, asin, atan, atan2, cos, cosh,
sin, sinh, tan, tanh, а также sqrt, exp, log, ln, log10.
7.* Исправлена ExprIsValid. Наблюдалась потеря коннекта, если проверялось выражение
с неверным параметром.
8.# Добавлен параметр mode в функции fopen для маски при создании файла.
9.+ Константы для работы с файлами:
fo_append - запись в конец файла для функции fopen.
fs_iread, fs_iwrite, fs_iexec - биты доступа на чтение/запись/выполнение владельца файла
при создании. (Функции fcreate, fopen с режимом FO_CREAT.)
10.+ Математические константы: e, pi.
11.+ Функция ExtractMillisecond для версии IB6 и выше.
12.+ Функция md5sum - высчитывает контрольную сумму входной строки по алгоритму MD5.
13.+ Функции md5Init, md5Update, md5Final для поблочного вычисления md5 контрольной суммы.
14.* Изменен тип второго параметра в функции NumInWords на строковый (грамматический род).
Допустимые значения: N - Средний, M - Мужской, F - Женский, P - Множественное.
15.+ Добавлена функция CreateGUID. Формат результата зависит от параметра
компиляции RGUID_WIN_STYLE. По-умолчанию используется формат linux.
16.* Изменен формат файлов сборки. Теперь все настройки вынесены в
rfunc.conf. Внимание! Действуют настройки по-умолчанию!
17.+ Функция fSize - размер файла.
.
Версия 2.1.2.4 Beta2 20.10.2003
--------------
1.+ Функция b_StrCmp - сравнение двух строковых BLOB.
Возвращает:
-1 - первый меньше,
0 - равны,
1 - первый больше.
2.+ Функция b_StrPos - поиск подстроки в BLOB.
BLOB читается сегментами размера b->blob_max_segment + strlen(s) + 1L
в процессе поиска.
3.+ Функции DoubleToDate и DoubleToTime - преобразование числа в дату и время.
4.+ Файловые функции: fcreate, fopen, fread, fwrite, fseek, fclose.
5.+ Функции-константы для режимов открытия файлов:
fseek_cur, fseek_end, fseek_set
fo_rdonly, fo_wronly, fo_rdwr
fo_creat, fo_trunc, fo_excl
.
Версия 2.1.1.1 Beta 11.06.2003
--------------
1.# Переписана IncDate. Теперь она работает так:
- сначала изменяется год, затем месяц, затем день;
- если изначальная дата была последним днем месяца, то после изменения года и месяца
она вновь делается послежним днем месяца, а уж потом прибавляются дни;
- если после изменения года и месяца день больше, чем максимальное число дней в месяце,
то день устанавливается последним днем месяца.
2.+ Функция StrCmp(str1, str2) - сравнение двух строк.
3.+ Функции C, LongC - выдает пустую строку, если значение поля Null, либо саму строку, если она не Null.
4.+ Функции MaxDate и MinDate - большая и меньшая даты соответственно.
5.+ Теперь можно скомпилировать функции дат для IB6, указав -DCOMPILE_DATETIME в make-файле.
6.+ Функции iEqual(i1, i2), dtEqual(dt1, dt2), /*??? dEqual(d1, d2), пока закомментанрил для вещественных чисел*/
cEqual(str1, str2) - проверка на равенство.
7.+ Функции FloatToStr(d, fmt), IntToStr(d, fmt) - форматирование вещественного и целого числа.
8.# Поддержка украинских букв "іІїЇєЄ" в функциях rUpper, rLower, rTranslit, rLatin.
9.* Исправлены b_SubStr, b_LongSubStr, SubStr, StrRepeat, LongStrRepeat. В некоторых местах
оператор return ""; заменен на более подходящий по смыслу.
10.* Импорт точек входа из gds32 идет по именам, а не по номерам.
11.* Используется ib_util.h из каталога $(IBASE)/include. Исправлен параметр запуска implib для него.
12.* Исправлены ошибки объявления функций Chr, b_SubStr, b_LongSubStr, b_Line, b_LongLine.
добавлен параметр FREE_IT.
13.+ Для всех функций "разбора" дат добавлены декларации функций вида
ExtractXXXX (например, ExtractDay, ExtractMonth). Это то же самое,
что и Day, Month и т.д. Их можно использовать во всех версиях Interbase.
ExtractXXXX - это полные аналоги функции EXTRACT(XXXX FOR date) в диалекте 3.
14.+ Функция IncDateTime, чтобы можно было к дате прибавить ещё и время, кроме собственно даты.
15.+ Функция Sign - знак числа.
16.* Исправлен парсер, не верно работала функция "IF".
17.+ Функция NumInWords - число прописью в win1251.
18.+ Функции RepeatTrim и LongRepeatTrim - удаляют в слове дублирование переданного символа.
19.+ Функции ConvertSymbols и LongConvertSymbols - Замена символов в строке из одного набора на символы из другого.
20.# b_Line, b_LongLine теперь не выводит в строке символы с кодом 0x0D и 0x0A.
21.* Исправлена CalcExpr, была ошибка при передаче параметров.
22.+ make файлы для Solaris и FreeBSD.
23.* Исправлены все функции, возвращающие дату. Где это возможно - задействуется входной параметр, где нет - добавлено FREE_IT в объявление функции.
24.+ Функции TimeToDouble и DateToDouble - преобразование времени (даты) в вещественное число.
25.# Изменены make-файлы, чтобы можно было собрать с библиотекой fbclient.
26.+ Функция EAN13cs - подсчет 13-й цифры кода EAN13.
.
Версия 2.0.1.2 20.07.2001
--------------
1.+ Функция IncDate(date, dd, mm, yy) - изменение даты на заданное количество
дней, месяцев, лет. Допустимы любые сочетания, инкремент и декремент, например,
SELECT IncDate('11.07.2001', -17, 14, -2), IncDate('11.07.2001', 0, 12, 0)
FROM RDB$DATABASE
2.* Функция Quarter.
.
Версия 2.0.0.2 31.05.2001
--------------
1.+ Работа с blob-полями.
b_Number_Segments - количество сегментов,
b_Max_Segment - максимальная длина сегмента,
b_Total_Length - количество байтов,
b_Line_Count - количество строк (!!! не зависит от того,
есть ли последний перевод строки !!!),
b_SubStr, b_LongSubStr - аналогичны строковым, только работают с blob-полями,
b_Line, b_LongLine - выдает строку из blob-поля по номеру,
b_Put_Segment - запись сегмента в blob-поле (пример смотри в rtest.sql),
2.# Расширение использования Функции SubStr:
m < 0 - отсчет происходит с конца строки,
n < 0 - выводятся символы слева от точки отсчета.
Например:
SELECT job_title, SubStr(job_title, -2, -3) FROM job
Manager age
Engineer nee
3.+ Функции генерации псевдослучайного числа:
initRandom - инициализация генератора псевдослучайных чисел,
getRandom - получение слудующего псевдослучайного числа.
(!!! Наличие параметров в обеих вызовах функций обусловлено разницей в работе функций
под Win32 и Linux !!!).
4.+ Функции для работы с датами:
YearDay, WeekDay - номер дня в году и в неделе,
Quarter - выдает квартал из даты,
FirstDayMonth, LastDayMonth - первый и последний день месяца датой,
isLeapYear - високосный ли год,
DaysBetween - количество дней между датами,
ExtractTime - оставляет только время без даты.
5.# Замена malloc на ib_util_malloc для IB5.x и выше.
6.+ Функции работы с битовыми полями:
getBit, setBit,
bitAnd, bitOr, bitXor, bitNot.
7.# Все функции разнесены по модулям:
rblob - работа с blob-полями,
rcalc - парсер,
rdatetime - работа с датами,
rmath - математические,
rmisc - разное,
rsecurity - системные,
rstring - строковые.
8.# CSTRING(255) заменено в объявлениях на CSTRING(256), CSTRING(16383) на CSTRING(16384)
9.+ Поддержка IB 6.0, Firebird 0.9
10.+ Функция dtIf - аналог iIf, только работает с датами.
11.+ Функции
PadRight, PadLeft, LongPadRight, LongPadLeft - дополнение строки до заданной ширины
указанным символом.
rTranslit, LongrTranslit - транслитерация из win1251 в латиницу.
rLatin, LongrLatin - замена символов из win1251 на "похожие" из латиницы.
12.# Изменены rUpper, rLower для ускорения работы;
StrCount - были перепутаны местами входные параметры.
13.+ rtest.sql - скрипт для тестирования и демонстрации работы библиотеки.
.
Версия 1.5.2 10.03.2000
------------
1.+ Поддержка Linux.
2.# Все объявления int в функциях заменены на Long.
3.+ Функции
EncodeDateTime - собирает дату со временем;
Hour, Minute, Second - вывод часов, минут, секунд из даты
.
Версия 1.5.1 17.02.2000
------------
1.* SubStr - нельзя было вырезать последний символ из строки.
.
Версия 1.5.0 20.01.2000
------------
1.+ Функции
SoftRound - округление с заданной точночтью, только если результат
округления - не ноль;
Div - целая часть от деления;
Mod - остаток от деления;
LongRUpper, LongRLower - перевод регистра для кодировки WIN1251 длинных
строк.
.
Версия 1.4.0 27.11.99
------------
1.+ Функции rUpper, rLower
2.# Изменены типы параметра flag на SMALLINT для
WordNum, LongWordNum, WordCount
.
Версия 1.3.2 17.11.99
------------
1.* Исправлены ltrim, rtrim, trim
.
Версия 1.3.1 16.11.99
------------
1.* Исправлена функция SubStr
2.# Для работы с функциями add_user, modify_user, delete_user
под IB 4.2 необходимо иметь клиента поновее :)
Будьте внимательны с паролем, он должен быть не более 8 символов.
.
Версия 1.3.0 12.11.99
------------
1.+ Функции:
Z - обнуление пустого значения
dif, iif, cif - реализация iif с разными типами параметров
DZero - деление со значением по-умолчанию
StrCount - количество вхождений подстроки в строку
WordCount(s, delims, flag) - Количество слов в строке
s - строка
delims - разделители
flag - считать ли несколько разделителей вместе пустой строкой
WordNum - N-е слово в строке
Просто вызов API функций. Требует передачи имени и пароля администратора.
add_user - добавление пользователя
modify_user - изменение параметров пользователя
delete_user - удаление пользователя
MsgBox(lpText, lpCaption, Flags) - Выводит окно сообщения с
возможностью выбора. НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАНИЕ на сервере :)
CalcExpr(s, inVar) - Простенький анализатор выражений.
+ - * /
Стандартный набор математических функций:
Sin, Cos, tg, ctg, AcrCos, ArcSin, ArcTg, sh, ch, th,
exp, lh, lg, sqrt, sqr, abs
Sgn - знак числа
Log - логарифм по произвольному основанию
Power - возведение в степень
If(expr, x1, x2)
Min(x1, ...) - с неограниченным количеством параметров
Max(x1, ...)
Sum(x1, ...) - Суммирование аргументов
Avg(x1, ...) - Среднее арифметическое
Pi - предопределенная переменная.
Для использования переменных в выражении - перед ними ставится двоеточие,
и они описываются во второй строке (см. пример).
ExprIsVal(s, inVar) - Проверка на корректность заданного выражения.
Пример использования:
CalcExpr('Sin( Pi*:p11/3)*:P2', 'P11=2;P2=10')
.
Версия 1.2.3 26.03.99
------------
1.+ Функция ExtractDate.
.
Версия 1.2.2 22.03.99
------------
1.* Исправлен глючок в Round.
.
Версия 1.2.1 18.02.99
------------
1.# В вызовах функций работы с длинными строками тип строк изменен на
CSTRING(16383).
2.* Исправлены функции LongStrStuff, LongStrReplace.
3.+ Функции StrReplace и LongStrRepeat.
4.# Изменены параметры функций:
StrLen, StrPos - c CSTRING(255) на CSTRING(16383)
SubStr - c SMALLINT на INTEGER.
5.+ "Псевдофункции" LongLTrim, LongRTrim, LongTrim, LongSubStr.
6.* Исправлен rfunc.bor.
.
Версия 1.2.0 10.02.99
------------
1.+ Функции LongStrStuff, LongStrReplace.
.
Версия 1.1 05.10.98
----------
1.* Исправлена StrStuff.
2.+ Функции Ord, Chr, Round.
.
Версия 1.0
----------
1.* Исправлена для использования в IB 5.x.
.
Версия 0.5
----------
Явилась на свет.


Copyright © 2003 Polaris Software