Как в автолиспе перевести строку с пробелами в список?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как в автолиспе перевести строку с пробелами в список?

Как в автолиспе перевести строку с пробелами в список?

Ответ
Поиск в этой теме
Непрочитано 14.02.2013, 12:56 #1
Как в автолиспе перевести строку с пробелами в список?
АнтонЧумак
 
Регистрация: 14.02.2013
Сообщений: 1

Например, есть строка "1 2 3 4" как её перевести в список (1 2 3 4)?
Просмотров: 2601
 
Непрочитано 14.02.2013, 12:58
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,422


Код:
[Выделить все]
 (defun _kpblc-conv-string-to-list (string separator / i)
                                  ;|
*    Функция разбора строки. Возвращает список либо точечную пару.
*    Параметры вызова:
*	string		разбираемая строка
*	separator	символ, используемый в качестве разделителя частей
*    Примеры вызова:
(_kpblc-conv-string-to-list "1;2;3;4;5;6" ";")	;'(1 2 3 4 5 6)
(_kpblc-conv-string-to-list "1;2" ";")		;'(1 2)
*    От рекурсии отказался - при длинных строках возможны вылеты.
|;
  (cond
    ((= string "") nil)
    ((vl-string-search separator string)
     ((lambda (/ pos res)
        (while (setq pos (vl-string-search separator string))
          (setq res    (cons (substr string 1 pos) res)
                string (substr string (+ (strlen separator) 1 pos))
                ) ;_ end of setq
          ) ;_ end of while
        (reverse (cons string res))
        ) ;_ end of lambda
      )
     )
    (t (list string))
    ) ;_ end of cond
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.02.2013, 13:28
1 | #3
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Код:
[Выделить все]
 Команда: (defun test(x) (read (strcat "("x")")))
TEST

Команда: (test "1 2 3 4 5")
(1 2 3 4 5)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как в автолиспе перевести строку с пробелами в список?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена динамических блоков Serge_Y Программирование 82 04.04.2019 11:54
Как преобразовать список в строку ivspec Программирование 11 18.03.2015 10:18
Линии электрических соединений Shoorup Программирование 23 07.02.2015 15:13
Как преобразовать строку в список swkx Программирование 6 14.07.2011 23:41
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47