;;; ************************************************************************ ;;; * Библиотека DWGruLispLib Copyright ©2007 DWGru Programmers Group ;;; * ;;; * dwgru-string-to-list ;;; * ;;; * 03/12/2007 Версия 0001. Сергей Зуев (ShaggyDoc) ;;; ************************************************************************ (defun lispru-string-to-list (str delimiter / pos) ;;; Возврат списка подстрок строки str с разделителем delimiter ;;; Использует функцию библиотеки ;;; dwgru-string-replace ;;; Параметры: ;;; string - исходная строка ;;; delimiter - разделитель (string) ;;; Возврат: ;;; строку (String) ;;; Пример: ;| (lispru-string-to-list "М:1=100" "=") ;_Результат ("М:1" "100") (lispru-string-to-list "М:1=" "=") ;_Результат ("М:1" "") (lispru-string-to-list "" "=") ;_Результат ("") (lispru-string-to-list "1 2 3 4 5" " ") ;_Результат ("1" "2" "3" "4" "5") (lispru-string-to-list "Я говорю, он говорит, они говорят" ",") ;_Результат ("Я говорю" " он говорит" " они говорят") (lispru-string-to-list "123456789" "=") ;_Результат ("123456789") |; ;;; для варианта, когда разделитель пробел надо ;;; заменить в строке все двойные пробелы на одинарные (if (= delimiter (chr 32)) (setq str (lispru-string-replace str (strcat (chr 32) (chr 32)) delimiter)) ) ;_ end of if (if (setq pos (vl-string-search delimiter str)) (cons (substr str 1 pos) (lispru-string-to-list (substr str (+ (strlen delimiter) pos 1) ) ;_ end of substr delimiter ) ;_ end ) ;_ end of cons (cons str '()) ) ;_ end of if ) ;_ end of defun