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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Функция SSGET и набор примитивов типа "текст", содержащих спецсимволы.

Функция SSGET и набор примитивов типа "текст", содержащих спецсимволы.

Ответ
Поиск в этой теме
Непрочитано 24.05.2018, 13:03 #1
Функция SSGET и набор примитивов типа "текст", содержащих спецсимволы.
Ivv
 
Санкт-Петербург
Регистрация: 17.03.2018
Сообщений: 5

При наличии в dwg-файле 2-х примитивов типа текст с содержимым 3.1 и 3-1
следующий код

(setq wn 3.1)
(setq wnss (ssget "_X" (list '(0 . "TEXT") (cons 1 wn))))
(sslength wnss)

возвращает 2

Из почерпнутого у lee-mac и на ресурсах autodesk пришло понимание того что текстовая строка функцией ssget воспринимается как шаблон по типу как это делает wcmatch.

Есть ли способ малой кровью добиться того чтобы ssget читала спецсимволы как обычные буквенно-цифровые и создавала набор только из того что ей передаётся переменной wn?
Малой кровью - имею ввиду без предварительного анализа переменной wn на предмет наличия спецсимволов и добавления ` перед каждым спецсимволом...
Можно ли этого добиться с помощью опций и сложных фильтров самой функции ssget?
Просмотров: 2395
 
Непрочитано 24.05.2018, 13:17
1 | #2
Кулик Алексей aka kpblc
Moderator

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


Кроме как
Цитата:
Сообщение от Ivv Посмотреть сообщение
анализа переменной wn на предмет наличия спецсимволов и добавления ` перед каждым спецсимволом
можно получить набор, а потом уже выполнять его анализ. Решение зависит от конкретных условий - можно так, можно этак.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.05.2018, 14:27
#3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


(setq wn "3\.1")

Цитата:
Both the C and AutoLISP programming languages use the backslash (\) as an escape character
https://knowledge.autodesk.com/searc...A53AD-htm.html
trir на форуме  
 
Непрочитано 24.05.2018, 14:46
| 1 #4
Кулик Алексей aka kpblc
Moderator

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


trir, в wcmatch некоторые символы приходится экранивать именно через `
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.05.2018, 15:13
#5
Ivv


 
Регистрация: 17.03.2018
Санкт-Петербург
Сообщений: 5


То есть в сторону сложных фильтров копать бесполезно?

Я в lisp не великий специалист, пока не доводилось их применять.


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение

можно получить набор, а потом уже выполнять его анализ.

В моём случае похоже лучше наверное выполнить предварительную обработку. Текстовые значения 3.1 и 3-1 - данные вводимые пользователем.

С точкой мне ещё повезло...) А если в строке * введут то есть риск чего только не нацеплять в набор.


Цитата:
Сообщение от trir Посмотреть сообщение
(setq wn "3\.1")
Это работает только для символа \. Т.е. его нужно писать \\ чтобы как один \ воспринимался. Для остальных символов символ `.

По вашей же ссылке:


Цитата:

To test for a wild-card character in a string, you can use the single reverse-quote character (`) to escape the character. Escape means that the character following the single reverse quote is not read as a wild-card character; it is compared at its face value.
Ivv вне форума  
 
Непрочитано 24.05.2018, 15:35
#6
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от Ivv Посмотреть сообщение
без предварительного анализа переменной wn
спецсимволов не так много, можно и анализ сделать
(setq wn "3[.]1")
koMon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Функция SSGET и набор примитивов типа "текст", содержащих спецсимволы.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разное время ssget при разнесенных примитивах и собранных? prajdziswet LISP 13 16.02.2017 10:08
Функция динамического рисования примитивов Autocad roaa Библиотека функций 8 04.06.2016 07:31
Может ли быть вторая лестница (жилой дом) типа Н2 без естественного освещения. ale1776 Архитектура 6 03.07.2013 02:17
Как пользоваться быстрым выбором примитивов "текст"? Малявка AutoCAD 3 01.03.2013 08:59
Проблема с функцией ssget Scorpio_1986 Программирование 4 26.05.2009 10:07