Функции обработки строк
1. chr – получение символа по коду действующей таблицы символов. (chr c) (chr 192) ® “А” (русская)
2. ascii – получение кода первого символа строки текста по коду действующей таблицы символов. (ascii s) (ascii “ABCD”) ® 65 (все символы, кроме первого, игнорируются).
3. read – читает аргумент, являющийся строкой, до первого пробела. Если прочитанная строка имеет вид числа или списка, то она сохраняется в виде числа или списка. Пример чтения данных из внешнего файла с сохранением в виде списка: (defun myf () (setq df (open “имяфайла” “r”) a (read (strcat “(“ (read-line df) “)”));a – список. … ) )
4. strcase – преобразование строки в верхний или нижний регистр. (strcase s) или (strcase s nil) – преобразование в верхний регистр. (strcase s T) – преобразование в нижний регистр.
5. strcat – сцепление строк. См. пример к п.3.
6. strlen – вычисление суммарной длины всех строк-аргументов. (strlen s1 s2 …)
7. substr – выделение подстроки. (substr строка начало количество) начало – номер символа в строке, с которого начинается подстрока; количество – количество символов в подстроке. Пример чтения данных из внешнего файла с сохранением первых двух символов в виде вещественного числа: (defun myf () (setq df (open “имяфайла” “r”) a (read-line df);a – строка a (substr a 1 2);a – подстрока a (atof a);a – вещественное число … ) ) Операции с переменной a можно записать без промежуточного сохранения результатов: (setq df (open “имяфайла” “r”) a (atof (substr (read-line df) 1 2)) … )
8. wcmatch – проверка строки на соответствие шаблону.
9. vl-string->list – преобразование строки в список с кодами символов. (vl-string->list “LISP”) ® ‘(76 73 83 80)
10. vl-list->string – преобразование списка с кодами символов в строку. (vl-list->string ‘(76 73 83 80)) ® “LISP”
11. vl-string->elt – вычисление кода символа, расположенного в строке на месте с заданным номером. Первый символ имеет номер 0. (vl-string->elt строка номер) (vl-string->elt “LISP” 3) ® 80 (код символа “P”)
12. vl-string-left-trim – удаление символов, начиная с первого символа строки, до тех пор, пока не встретится символ, который не входит в перечень удаляемых. (vl-string-left-trim перечень строка) (vl-string-left-trim “корпус” “проспект”) ® “ект”
13. vl-string-right-trim – удаление символов, начиная с последнего символа строки, до тех пор, пока не встретится символ, который не входит в перечень удаляемых. (vl-string-right-trim перечень строка) (vl-string-right-trim “лоция” “дистанция”) ® “дистан”
14. vl-string-trim – является комбинацией функций vl-string-left-trim и vl-string-right-trim. (vl-string-trim “декларация” “дистанция”) ® “стан”
15. vl-string-mismatch – сверяет две строки, начиная с заданных позиций, и возвращает количество совпавших символов. Отсчет позиций в строке начинается с 0. (vl-string-mismatch s1 s2 p1 p2 r) s1, s2 – сверяемые строки. p1, p2 – номера позиций в сверяемых строках; по умолчанию p1=p2=0; Если r задан и имеет значение, отличное от nil, то при сверке регистр символов игнорируется.
16. vl-string-position – поиск символа с заданным кодом в строке, начиная с заданной позиции. Возвращает номер позиции первого найденного символа. Отсчет позиций в строке начинается с 0. (vl-string-position k s n kon) k – код; s – строка; n – номер позиции, с которой начинается поиск; если n не задан, то принимается n=0; kon – необязательный параметр; если kon не nil, то поиск идет с конца строки. (setq a “LISP” a (vl-string-position 73 a));a=1 (код символа I)
17. vl-string-search – поиск заданной последовательности символов в строке, начиная с заданной позиции. Отсчет позиций в строке начинается с 0. (vl-string-search ps str n) ps – последовательность символов; str – строка; n – номер позиции, с которой начинается поиск; если n не задан, то принимается n=0. (vl-string-search “in” “training” 4) ® 5.
18. vl-string-subst – замена в строке одной последовательности символов на другую, начиная с определенного номера позиции. Отсчет позиций в строке начинается с 0. (vl-string-subst ns ss str n) ns – новые символы; ss – старые символы; str – строка; n – номер позиции, с которой начинается поиск; если n не задан, то принимается n=0. (vl-string-subst “мо” “ка” “каталка”) ® “моталка” (происходит замена только первых найденных символов).
19. vl-string-translate – замена в строке символов одной группы на символы другой группы. (vl-string-translate “19” “ab” “1971”) ® “ab7a”
20. vl-symbol-name – выводит имя символа в виде текстовой строки.
|