feldsher
Скачать (zip-файл; Размер - 1977449)Обсудить в форуме
Описание
flLevenshteinDistance(str1:String, str2:String)
Возвращаемое значение: целое, расстояние Левенштейна между строками str1 и str2.
flUrlCreateFromPath(path:String)
Возвращаемое значение: строка, URL образованный из пути path.
flFormDate(format:String, date:Date)
Переводит дату в строку по заданному формату. При ошибке преобразования даты возвращается значение типа V_UNDEF.
format — строка с форматом, описание см. функцию strftime.
date — дата, если отсутствует, берётся текущее время, функция принимает значения типа Date и DateTime.
flIConv(code_in:String, code_out:String, string:String)
Перекодирует строку string из кодировки code_in в кодировку code_out.
Возвращаемое значение: строка, результат перекодировки.
Из кодировок, которые могут пригодиться, стоит упомянуть CP1251, CP866, UTF-8. Если в качестве кодировки указан null, принимается CP866.
Для работы требуется библиотека iconv. Ограничения на сайте R-Style не позволяют включить требуемые dll в архив. Надо скачать архив http://gnuwin32.sourceforge.net/downlinks/libiconv-bin-zip.php из папки bin извлечь две dll (libiconv2.dll и libcharset1.dll) и подложить их в obj или в путь. Если на машине в пути есть аналогичные, то эти можно не подкладывать.
flStringPrepareToJson(string:String)
Гибридная функция. Подготавливает строку к использованию в JSON формате. Специальные символы экранируются. Кирилица и латиница остются нетронутыми. Остальные символы кодируюся в unicode в JSON формате (\uXXXX). Такая перекодировка рассчитана на то, что строка будет передана средствами RSL в ActiveX объект и в процессе этой передачи произойдёт перекодировка в unicode. Таким образом, в результате этих двух трансформаций получится строка в JSON формате с читаемой кирилицей и экранированными стрёмными символами. Сценарий использования — для ручного сбора JSON. Пример:
adodbRecordSet.Fields.Item("response_json").Value=
"{\"ground\":\""+flStringPrepareToJson(postdoc.rec.Ground)+"\"}";
flSHA256(string:String)
Возвращает строку кодированную в шестнадцатиричном виде со значением хэш-функции по алгоритму SHA256 от входной строки.
flHash(function_name:String, string:String)
Функция возвращает хэш строки string. Алгоритм расчёта хэшфункции задаётся параметром function_name. Допустимые значения: blake2b512, blake2s256, md4, md5, mdc2, rmd160, sha1, sha224, sha256, sha3-224, sha3-256, sha3-384, sha3-512, sha384, sha512, sha512-224, sha512-256, shake128, shake256, sm3. Если в качестве первого параметра передан null, то используется md5. Для работы необходима библиотека libcrypto от openssl.
flUrlDecode(string:String)
Раскодирует строку string, закодированную URL encode, также преобразует из UTF8 в CP866.
Возвращаемое значение: строка, результат перекодировки.
flMemSpeedTest(size:Integer, count:Integer, block_size):Double
Замеряет скорость записи в оперативную память. Возвращает мегабайты в секунду в формате с плавающей запятой.
Параметры:
size — размер в байтах, по умолчанию 1Gb.
count — кол-во повторов, по умолчанию 3.
block_size — если указано и больше 0, то используется копирование из предварительного подготовленного блока размером block_size через memcpy.
Возвращаемое значение: целое, расстояние Левенштейна между строками str1 и str2.
flUrlCreateFromPath(path:String)
Возвращаемое значение: строка, URL образованный из пути path.
flFormDate(format:String, date:Date)
Переводит дату в строку по заданному формату. При ошибке преобразования даты возвращается значение типа V_UNDEF.
format — строка с форматом, описание см. функцию strftime.
date — дата, если отсутствует, берётся текущее время, функция принимает значения типа Date и DateTime.
flIConv(code_in:String, code_out:String, string:String)
Перекодирует строку string из кодировки code_in в кодировку code_out.
Возвращаемое значение: строка, результат перекодировки.
Из кодировок, которые могут пригодиться, стоит упомянуть CP1251, CP866, UTF-8. Если в качестве кодировки указан null, принимается CP866.
Для работы требуется библиотека iconv. Ограничения на сайте R-Style не позволяют включить требуемые dll в архив. Надо скачать архив http://gnuwin32.sourceforge.net/downlinks/libiconv-bin-zip.php из папки bin извлечь две dll (libiconv2.dll и libcharset1.dll) и подложить их в obj или в путь. Если на машине в пути есть аналогичные, то эти можно не подкладывать.
flStringPrepareToJson(string:String)
Гибридная функция. Подготавливает строку к использованию в JSON формате. Специальные символы экранируются. Кирилица и латиница остются нетронутыми. Остальные символы кодируюся в unicode в JSON формате (\uXXXX). Такая перекодировка рассчитана на то, что строка будет передана средствами RSL в ActiveX объект и в процессе этой передачи произойдёт перекодировка в unicode. Таким образом, в результате этих двух трансформаций получится строка в JSON формате с читаемой кирилицей и экранированными стрёмными символами. Сценарий использования — для ручного сбора JSON. Пример:
adodbRecordSet.Fields.Item("response_json").Value=
"{\"ground\":\""+flStringPrepareToJson(postdoc.rec.Ground)+"\"}";
flSHA256(string:String)
Возвращает строку кодированную в шестнадцатиричном виде со значением хэш-функции по алгоритму SHA256 от входной строки.
flHash(function_name:String, string:String)
Функция возвращает хэш строки string. Алгоритм расчёта хэшфункции задаётся параметром function_name. Допустимые значения: blake2b512, blake2s256, md4, md5, mdc2, rmd160, sha1, sha224, sha256, sha3-224, sha3-256, sha3-384, sha3-512, sha384, sha512, sha512-224, sha512-256, shake128, shake256, sm3. Если в качестве первого параметра передан null, то используется md5. Для работы необходима библиотека libcrypto от openssl.
flUrlDecode(string:String)
Раскодирует строку string, закодированную URL encode, также преобразует из UTF8 в CP866.
Возвращаемое значение: строка, результат перекодировки.
flMemSpeedTest(size:Integer, count:Integer, block_size):Double
Замеряет скорость записи в оперативную память. Возвращает мегабайты в секунду в формате с плавающей запятой.
Параметры:
size — размер в байтах, по умолчанию 1Gb.
count — кол-во повторов, по умолчанию 3.
block_size — если указано и больше 0, то используется копирование из предварительного подготовленного блока размером block_size через memcpy.
Текст примера
import feldsher; var r, s1, s2; s1="Левенштейн"; s2="Лихтенштайн"; r=flLevenshteinDistance(s1,s2); PrintLn(s1+"-"+s2+"="+r); s1="c:\\Пользователи\\Мои документы\\e-book.xlsx"; s2=flUrlCreateFromPath(s1); PrintLn(s1,"->",s2); PrintLn(flFormDate()); PrintLn(flFormDate("%Y%d%m %A")); PrintLn(flFormDate("%Y%d%m %A",date(31,12,1998))); PrintLn(flIConv("CP866","CP866","Рюский тэкст")); PrintLn(flIConv(null,null,"Рюский тэкст")); PrintLn(flIConv("CP866","UTF-8","Рюский тэкст")); PrintLn(flIConv(null,"CP1251","Рюский тэкст")); PrintLn(flIConv("UTF-8","CP866","╨Я╤А╨╕╨▓╨╡╤В, ╤П ╤Б╤В╤А╨╛╨║╨░ ╨▒╤Л╨▓╤И╨░╤П ╨▓ ╨║╨╛╨┤╨╕╤А╨╛╨▓╨║╨╡ utf-8")); PrintLn(flIConv("UTF-8","CP866",null)); PrintLn(flStringPrepareToJson("строка\nещё строка\ttab\rRRR────\x01\x02\x03")); PrintLn(flSHA256("abc")); PrintLn(flHash("sha256","abc"));