This is the mnas-string Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 08 19:00:27 2024 GMT+0.
mnas-string/mnas-string.asd
mnas-string/core/src/core/core.lisp
mnas-string/core/src/app-numbering/app-numbering.lisp
mnas-string/print/src/print/print.lisp
mnas-string/translit/src/translit/translit.lisp
mnas-string/db/src/db/db.lisp
mnas-string/parse/src/parse/parse.lisp
The main system appears first, followed by any subsystem dependency.
mnas-string
mnas-string/core
mnas-string/print
mnas-string/translit
mnas-string/db
mnas-string/parse
mnas-string
Система @b(mnas-string) предназначена для:
@begin(list)
@item(парсинга вещественного числа;)
@item(разделения строки на подстроки;)
@item(замены всех вхождений подстроки в строке;)
@item(замены множественного вхождения паттерна единичным;)
@item(подготовки строки в качестве аргумента для like запроса SQL;)
@item(обрамления строки префиксом и постфиксом;)
@item(вывода представления даты и времени в поток или строку;)
@item(траслитерации строки.)
@end(list)
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
mnas-string/core
(system).
mnas-string/print
(system).
mnas-string/translit
(system).
mnas-string/db
(system).
mnas-string/parse
(system).
mnas-string/core
Система @b(mnas-string/core) содержит функции:
@begin(list)
@item(парсинга вещественного числа;)
@item(разделения строки на подстроки;)
@item(замены всех вхождений подстроки в строке;)
@item(замены множественного вхождения паттерна единичным;)
@item(обрамления строки префиксом и постфиксом.)
@end(list)
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
cl-ppcre
(system).
src/core
(module).
src/app-numbering
(module).
mnas-string/print
Система @b(mnas-string/print) содержит в
своем составе функции вывода представления даты и времени в поток.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
mnas-string/translit
(system).
src/print
(module).
mnas-string/translit
Система @b(mnas-string/translit) cодержит функции траслитерации строки.
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
mnas-hash-table
(system).
src/translit
(module).
mnas-string/db
Система @b(mnas-string/db) содержит функции:
@begin(list)
@item(подготовки строки в качестве аргумента для like запроса SQL;)
@end(list)
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
mnas-string/core
(system).
src/db
(module).
mnas-string/parse
Система @b(mnas-string/parse) содержит функции:
@begin(list)
@item(парсинга вещественного числа.)
@end(list)
Mykola Matvyeyev <mnasoft@gmail.com>
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 or later
cl-ppcre
(system).
mnas-string/core
(system).
src/parse
(module).
Modules are listed depth-first from the system components tree.
mnas-string/core/src/core
mnas-string/core/src/app-numbering
mnas-string/print/src/print
mnas-string/translit/src/translit
mnas-string/db/src/db
mnas-string/parse/src/parse
mnas-string/core/src/core
mnas-string/core
(system).
core.lisp
(file).
mnas-string/core/src/app-numbering
mnas-string/core
(system).
app-numbering.lisp
(file).
mnas-string/print/src/print
mnas-string/print
(system).
print.lisp
(file).
mnas-string/translit/src/translit
mnas-string/translit
(system).
translit.lisp
(file).
mnas-string/db/src/db
mnas-string/db
(system).
db.lisp
(file).
mnas-string/parse/src/parse
mnas-string/parse
(system).
parse.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
mnas-string/mnas-string.asd
mnas-string/core/src/core/core.lisp
mnas-string/core/src/app-numbering/app-numbering.lisp
mnas-string/print/src/print/print.lisp
mnas-string/translit/src/translit/translit.lisp
mnas-string/db/src/db/db.lisp
mnas-string/parse/src/parse/parse.lisp
mnas-string/core/src/core/core.lisp
src/core
(module).
getenv
(function).
make-populated-hash-table
(function).
map-to-list
(function).
mpattern-to-spattern
(function).
pre-post
(function).
replace-all
(function).
replace-all-words
(function).
select
(function).
split
(function).
trd-rename
(function).
mnas-string/core/src/app-numbering/app-numbering.lisp
src/app-numbering
(module).
application-name
(function).
*abc-app*
(special variable).
*abc-en*
(special variable).
*abc-en-depricated*
(special variable).
*abc-ru*
(special variable).
*abc-ru-depricated*
(special variable).
mnas-string/print/src/print/print.lisp
src/print
(module).
*default-month-language*
(special variable).
*mon-en*
(special variable).
*mon-ru*
(special variable).
*mon-ua*
(special variable).
date
(function).
date-time
(function).
date-time-fname
(function).
day-time
(function).
number-to-string
(function).
init-month-ht
(function).
number-to-string-1
(function).
mnas-string/translit/src/translit/translit.lisp
src/translit
(module).
*cfx->en*
(special variable).
*cir-gr->en*
(special variable).
*empty*
(special variable).
*space-cir-gr->en*
(special variable).
add-transliter
(function).
make-transliter
(function).
print-transliter
(function).
translit
(function).
*allowed-characters*
(special variable).
*cyrillic->english-capital-letter*
(special variable).
*cyrillic->english-small-letter*
(special variable).
*cyrillic-capital-letter*
(special variable).
*cyrillic-small-letter*
(special variable).
*forbidden-cfx->english-letter*
(special variable).
*forbidden-cfx-letter*
(special variable).
*forbidden-characters*
(special variable).
*greek->english-capital-letter*
(special variable).
*greek->english-small-letter*
(special variable).
*greek-capital-letter*
(special variable).
*greek-small-letter*
(special variable).
init-cfx
(function).
init-cir-gr->en
(function).
init-space-cir-gr->en
(function).
mnas-string/db/src/db/db.lisp
src/db
(module).
prepare-to-query
(function).
mnas-string/parse/src/parse/parse.lisp
src/parse
(module).
parse-number
(function).
read-integer-alt
(function).
read-number
(function).
Packages are listed by definition order.
mnas-string/parse
Пакет @b(mnas-string) содержит в своем составе
следующие основные функции:
@begin(list)
@item(@b(read-number) - парсинг вещественного числа при
помощи считывателя Common Lisp;)
@item(@b(parse-number) - парсинг вещественного числа;)
@item(@b(read-integer-alt) - выбор одного из целых чисел;)
@end(list)
common-lisp
.
parse-number
(function).
read-integer-alt
(function).
read-number
(function).
mnas-string
Пакет @b(mnas-string) содержит в своем составе
следующие основные функции:
@begin(list)
@item(@b(split) - разделение строки на подстроки;)
@item(@b(replace-all) - замена всех вхождений подстроки в строке;)
@item(@b(mpattern-to-spattern) - замена множественного вхождения паттерна единичным;)
@item(@b(pre-post) - обрамление строки префиксом и постфиксом.)
@end(list)
common-lisp
.
application-name
(function).
getenv
(function).
make-populated-hash-table
(function).
map-to-list
(function).
mpattern-to-spattern
(function).
pre-post
(function).
replace-all
(function).
replace-all-words
(function).
select
(function).
split
(function).
trd-rename
(function).
*abc-app*
(special variable).
*abc-en*
(special variable).
*abc-en-depricated*
(special variable).
*abc-ru*
(special variable).
*abc-ru-depricated*
(special variable).
mk-pred
(function).
split-bak
(function).
mnas-string/print
Пакет @b(mnas-string/print) экспортирует следующие функции:
@begin(list)
@item(@b(date) - вывод даты;)
@item(@b(date-time) - вывод даты и времени;)
@item(@b(day-time) - вывод времени;)
@item(@b(date-time-fname) - вывод даты и времени для именования файла.)
@end(list)
Все вышеперечисленые функций первым аргументом принимают:
@begin(list)
@item(@b(u-time) - время, заданное в универсальном формате;)
@end(list)
Кроме того, все они принимают ключевой аргумент @b(stream):
@begin(list)
@item(при @b(stream)=@b(nil) - вывод осуществляется в строку;)
@item(при @b(stream)=@b(t) - вывод на стандартный вывод.)
@end(list)
Остальными ключевыми параметрами этих фукций являются:
@begin(list)
@item(@b(year) - позволяет выводить (при @b(year)=@b(t)) или не
выводить (при @b(year)=@b(nil)) представление года;)
@item(@b(day) - позволяет выводить (при @b(day)=@b(t)) или не
выводить (при @b(day)=@b(nil)) число дня;)
@item(@b(ss) - позволяет выводить (при @b(ss)=@b(t)) или не выводить (при @b(ss)=@b(nil)) представление секунд;)
@item(@b(month-language) - задает язык для вывода месяца. Значением
аргумента должна быть хеш-таблица. Ключи - порядковые номера месяцев
от 1 до 12. Значения - строки с наименованиями месяцев.)
@end(list)
common-lisp
.
*default-month-language*
(special variable).
*mon-en*
(special variable).
*mon-ru*
(special variable).
*mon-ua*
(special variable).
date
(function).
date-time
(function).
date-time-fname
(function).
day-time
(function).
number-to-string
(function).
init-month-ht
(function).
number-to-string-1
(function).
mnas-string/db
Пакет @b(mnas-string/db) экспортирует следующие функции:
@begin(list)
@item(@b(prepare-to-query) - подготовка строки в качестве аргумента для like запроса SQL.)
@end(list)
common-lisp
.
prepare-to-query
(function).
mnas-string/translit
Пакет @b(mnas-string/translit) экспортирует следующие функции:
@begin(list)
@item(@b(translit) - транслитерация строки.)
@end(list)
Транслитерация производится с использованием хеш-таблицы
преобразования, в которой каждому заменяемому символу (ключ)
соответствует строка (значение) на которую он заменяется.
Пакет @b(mnas-string/translit) экспортирует следующие хеш-таблицы
преобразования:
@begin(list)
@item(*cir-gr->en* - преобразование кириллических и греческих
символов в латинские;)
@item(*space-cir-gr->en* - преобразование кириллических и греческих
символов в латинские, такое что результат мог использоваться в
качестве символа Common Lisp.)
@item(*cfx->en* - преобразование кириллических и греческих и
символов, запрещенных в пакете ANSYS CFX, в английские символы
разрешенніе в пакете CFX.)
@end(list)
common-lisp
.
*cfx->en*
(special variable).
*cir-gr->en*
(special variable).
*empty*
(special variable).
*space-cir-gr->en*
(special variable).
add-transliter
(function).
make-transliter
(function).
print-transliter
(function).
translit
(function).
*allowed-characters*
(special variable).
*cyrillic->english-capital-letter*
(special variable).
*cyrillic->english-small-letter*
(special variable).
*cyrillic-capital-letter*
(special variable).
*cyrillic-small-letter*
(special variable).
*forbidden-cfx->english-letter*
(special variable).
*forbidden-cfx-letter*
(special variable).
*forbidden-characters*
(special variable).
*greek->english-capital-letter*
(special variable).
*greek->english-small-letter*
(special variable).
*greek-capital-letter*
(special variable).
*greek-small-letter*
(special variable).
init-cfx
(function).
init-cir-gr->en
(function).
init-space-cir-gr->en
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
@b(Описание:) хеш-таблица @b(*cfx->en*) служит для преобразования
кириллических, греческих и символов запрещенных в пакете ANSYS CFX в
английские символы.
При преобразовании с использованием функции @b(translit) пробельные и специальные символы заменяются такими, что преобразованная строка может использоваться в качестве имени (символа).
@b(Описание:) хеш-таблица @b(*cir-gr->en*) служит для преобразования кириллических и греческих символов в английские символы.
@b(Описание:) *default-month-language* язык по-умолчанию для наименования месяца.
@b(Пример использования:)
@begin[lang=lisp](code)
(gethash 1 *default-month-language*)
@end(code)
@b(Описание:) хеш-таблица @b(*empty*) является пустой и каждый символ поступающий на преобразоваие с ее помощью представляется самим собой.
@b(Описание:) хеш-таблица @b(*mon-en*) содержит названия месяцев на
английском языке.
Ключами являются порядковые номера месяцев от 1 до 12.
@b(Пример использования:)
@begin[lang=lisp](code)
(gethash 1 *mon-en*) => "January" ,T
(gethash 12 *mon-en*) => "December" ,T
@end(code)
@b(Описание:) хеш-таблица @b(*mon-ru*) содержит названия месяцев на
русском языке.
Ключами являются порядковые номера месяцев от 1 до 12.
@b(Пример использования:)
@begin[lang=lisp](code)
(gethash 1 *mon-ru*) => "Январь", T
(gethash 12 *mon-ru*) => "Декабрь", T
@end(code)
@b(Описание:) хеш-таблица @b(*mon-ua*) содержит названия месяцев на
украинском языке.
Ключами являются порядковые номера месяцев от 1 до 12.
@b(Пример использования:)
@begin[lang=lisp](code)
(gethash 1 *mon-ua*) => "Січень", T
(gethash 12 *mon-ua*) => "Грудень", T
@end(code)
@b(Описание:) хеш-таблица @b(*space-cir-gr->en*) служит для
преобразования кириллических и греческих символов в английские
символы.
При преобразовании с использованием функции @b(translit) пробельные и специальные символы заменяются такими, что преобразованная строка может использоваться в качестве имени (символа).
@b(Описание:) функция @b(app-name) возвращает строку, представляющую
номер приложения (см. п.4.3.8 ГОСТ 2.105-95).
@b(Переменые:)
@begin(list)
@item(index - целое (0 соответствует А);)
@item(start-index - смещение начального индекса.)
@end(list)
@b(Описание:) функция @b(date) выводит в поток @b(stream)
строковое представление даты.
@b(Пример использования:)
@begin[lang=lisp](code)
(date (get-universal-time) :stream nil) => "2019-12-04"
(date (get-universal-time) :stream nil :year nil :day nil) => "Январь"
@end(code)
@b(Описание:) date-time выводит в поток @b(stream)
строковое представление даты и времени.
@b(Пример использования:)
@begin[lang=lisp](code)
(date-time (get-universal-time)) ;-> 2021-03-06_21:17:11 => NIL
(date-time (get-universal-time) :year nil ) ;->03-06_21:18:57 => NIL
(date-time (get-universal-time) :year nil :ss nil) ;-> 03-06_21:19 => NIL
(date-time (get-universal-time) :ss nil) ;-> 2021-03-06_21:20 => NIL
@end(code)
@b(Описание:) функция @b(date-time-fname) выводит дату и время в
пригодном для формирования имени файла формате.
@b(Пример использования:)
@begin[lang=lisp](code)
(let ((ut (get-universal-time)))
(date-time-fname ut :year t :ss t) ;-> 2021-03-06_23-03-11
(date-time-fname ut :year nil :ss t) ;-> 03-06_23-03-11
(date-time-fname ut :year t :ss nil) ;-> 2021-03-06_23-03
(date-time-fname ut :year nil :ss nil)) ;-> 03-06_23-03
=> NIL
@end(code)
@b(Описание:) day-time выводит в поток @b(stream) строковое
представление времени.
@b(Пример использования:)
@begin[lang=lisp](code)
(day-time (get-universal-time)) ;-> 23:06:15 =>NIL
(day-time (get-universal-time) :ss nil) ;-> 23:07 =>NIL
@end(code)
@b(Описание:) функция @b(getenv) возвращает строку, представляющую значение системной переменной, заданное аргументом @b(sys-var).
@b(Пример использования:)
@begin[lang=lisp](code)
(getenv "SBCL_HOME")
(getenv "PATH")
@end(code)
@b(Описание:) функция @b(make-populated-hash-table) возвращает
наполненную элементами хеш-таблицу. Хеш-таблица формируется на
основании содержимого последовательности @b(sequence).
Для каждого элемента последовательности при добавлении в хеш-таблицу:
@begin(list)
@item(ключи вычисляются при помощи функции, заданной аргументом @b(key-function);)
@item(значения вычисляются при помощи функции, заданной аргументом @b(value-function).)
@end(list)
@b(Описание:) map-to-list выполняет преобразование
последовательности @b(sequence) в список.
@b(Пример использования:)
@begin[lang=lisp](code)
(map-to-list ’((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)))
; => ((1 2) (2 3) (3 4) (4 5) (5 6) (6 7))
(map-to-list ’((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)) :key #’first)
; => (1 2 3 4 5 6)
(map-to-list ’((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)) :key #’second)
; => (2 3 4 5 6 7)
@end(code)
@b(Описание:) @b(mpattern-to-spattern) возвращает строку, у которой
повторяющиеся подряд подстроки @b(pattern) сведены до одного включения.
@b(Пример использования:)
@begin[lang=lisp](code)
(mpattern-to-spattern " " "Our plane will land in the city of BadenBaden.")
=> "Our plane will land in the city of BadenBaden."
@end(code)
@b(Описание:) функция @b(number-to-string) возвращает строку,
которая представляет вещественое число в формате пригодном для
вставки в CCL файл системы ANSYS CFX в качестве имени.
@b(Пример использования:)
@begin[lang=lisp](code)
(number-to-string 90.5645) => "p90i56"
(number-to-string -90.5645) => "m90i56"
@end(code)
@b(Описание:) parse-number выполняет чтение из строки
@b(str) вещественного числа.
Если число не удалось считать - возвращается default.
@b(Пример использования:)
@begin[lang=lisp](code)
(parse-number "3.14") => 3.14, 4
(parse-number "3,14") => 3.14, 4
(parse-number "3,14e2") => 314.0, 6
(parse-number "-3,14e-2") => -0.0314, 8
(parse-number "3,14d+2") => 314.0d0, 7
(parse-number "-3,14d-2") => -0.0314d0, 8
@end(code)
@b(Описание:) функция @b(pre-post) возвращает строку, основанную на @b(string) с добавлением перед и после нее префикса @b(prefix) и постфикса @b(postfix) pre-post-string
@b(Описание:) функция @b(prepare-to-query) возвращает строку
подготовленную для участия в запросе к базе данных, основанную на
содержимом строки @b(str).
Подготовка заключется в исключении начальных и конечных пробелов и
замене оставшихся пробелов на знаки %.
@b(Пример использования:)
@begin[lang=lisp](code)
(prepare-to-query " гайки с квадр гол ")
; => "%гайки%с%квадр%гол%"
@end(code)
@b(Описание:) функция @b(read-number) возвращает число
класса @b(number) при чтении из строки @b(str).
При считывании используется стандартный считыватель Common Lisp.
@b(Описание:) функция @b(replace-all) возвращает строку, в которой
все вхождения @b(part) заменяется на @b(replacement).
@b(Пример использования:)
@begin[lang=lisp](code)
(replace-all "Paris, Paris? Paris!" "Pa" "Bo")
=> "Boris, Boris? Boris!"
(ppcre:regex-replace-all "Pa" "Paris, Paris? Paris!" "Bo")
@end(code)
@b(Описание:) функция @b(select) возвращает последовательность,
состоящую из эментов из последовательности @b(sequence), ключевые
элементы которой, удовлетворяют регулярному выражению @b(regexp).
@b(Пример использования:)
@begin[lang=lisp](code)
;; Отбирает элементы, где есть две идущие последовательно цифры.
(select "[0-9]{2}"
’(("12ab" "0") ("a12b" "1") ("a1b2" "2") ("ab12" "3") ("1ab2" "4"))
:key #’first)
@end(code)
@b(Описание:) функция: @b(split) разделяет строку @b(string) на подстроки.
@b(Возвращает:) список подстрок.
@b(Переменые:)
@begin(list)
@item(@b(char-bag) - символы из этой строки используются в качестве разделителей;)
@item(@b(string) - строка, подлежащая разделению на подтсроки;)
@item(если omit-nulls не равно nil пустые подстроки из результирующего списока исключаются.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(split "; " " 1111 ; +5550650456540; 55" ) => ("1111" "+5550650456540" "55")
@end(code)
@b(Описание:) функция @b(translit) возвращает транслитерированную
строку, символов находящихся в строке str. Для транслитерации
исползуется хеш-таблица ht.
В качестве таблиц перобразования (хеш-таблицы ht) рекомендуется использовать:
@begin(list)
@item(*cir-gr->en* - с пробельными символами;)
@item(*space-cir-gr->en* - с исключением пробельных символов.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(translit "Что это?" :ht *cir-gr->en*) => "CHto eto?"
(translit "Что это?" :ht *space-cir-gr->en*) => "CHto-eto?"
(translit "Съешь же ещё этих мягких французских булочек да выпей чаю!")
; => "S_esh- zhe eshchio etih myagkih frantsuzskih bulochek da vypeiy chayu!"
@end(code)
@b(Описание:) функция @b(trd-rename) возвращает строку, представляющую имя файла в формате "YYYY-MM-DD_hhmmss.ext".
Преобразуемая строка дожна удовлетворять формату
"DDMMYY_hhmmss.ext".
Здесь:
@begin(list)
@item(YYYY - год;)
@item(YY - год;)
@item(MM - месяца;)
@item(DD - день;)
@item(hh - час;)
@item(mm - минута;)
@item(ss - секунда;)
@item(ext - расширение файла.)
@end(list)
@b(Пример использования:)
@begin[lang=lisp](code)
(trd-rename "150819_082056.trd") => "2019-08-15_082056.trd"
@end(code)
Символы, разрешенные для использования в имени символа Common Lisp. Знена для *forbidden-characters*.
Символы, запрещенные для использования в имени символа Common Lisp.
@b(Описание:) функция @b(init-month-ht) выполняет инициализацию хеш-таблиц: @b(*mon-ru*); @b(*mon-ua*); @b(*mon-en*), содержащих наименования месяцев.
@b(Описание:) функция @b(number-to-string) возвращает строку,
которая представляет вещественое число в формате пригодном для
вставки в CCL файл системы ANSYS CFX в качестве имени.
@b(Пример использования:)
@begin[lang=lisp](code)
(number-to-string 90.5645) => "p90i56"
(number-to-string -90.5645) => "m90i56"
@end(code)
Jump to: | A D F G I M N P R S T |
---|
Jump to: | A D F G I M N P R S T |
---|
Jump to: | *
S |
---|
Jump to: | *
S |
---|
Jump to: | A C D F M P S T |
---|
Jump to: | A C D F M P S T |
---|