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

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

Как правильно использовать юникод в лиспе?

Ответ
Поиск в этой теме
Непрочитано 04.08.2014, 13:30 #1
Как правильно использовать юникод в лиспе?
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

Есть такая хитрая буква Ø - это не знак диаметра, а перечёркнутое О. Она, ежели её вставить в атрибуты или свойства блока - видна.
Это юникод - U+00D8. Есть ещё знак диаметра ⌀ это юникод - U+2300, он в свойствах и атрибутах блока виден как квадрат. Если читать свойства и атрибуты через методы Getattributes или GetDynamicBlockProperties, то знак диаметра замещается знаком вопроса, а перечёркнутое Ø - простым заглавным О.
В словаре ACAD_EVALUATION_GRAPH названия свойств без замещения и чтобы найти текущее значение свойства - надо было сравнить строки из GetDynamicBlockProperties и ACAD_EVALUATION_GRAPH - тут настал интересный момент...
Надо для шаблона сравнения заменить букву Ø на знак вопроса а в блокнот она записываться - записывается, но читаться при загрузке лиспа не хочет .
Мне в свойствах позарез необходим знак диаметра или эта буква.
Нашёл хитрый способ - Записал в реестр строку с этой буквой.
Цитата:
(vl-registry-write "HKEY_CURRENT_USER\\LISP" "diametr" "Ø")
и читаю, когда нужно заменить
Цитата:
(vl-registry-read "HKEY_CURRENT_USER\\LISP" "diametr")
Запятые не хотят сравниваться по шаблону - тоже приходится заменять на вопросы, но тут уже без изысков с реестром.

Может есть интереснее решение?

Последний раз редактировалось Supermax, 04.08.2014 в 14:13.
Просмотров: 3432
 
Непрочитано 04.08.2014, 14:32
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


%%c никак не подойдет?
gomer вне форума  
 
Непрочитано 04.08.2014, 14:37
#3
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Supermax Посмотреть сообщение
Запятые не хотят сравниваться по шаблон
Это ты про wcmatch?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.08.2014, 15:29
#4
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Да. Именно.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от gomer Посмотреть сообщение
%%c никак не подойдет?
Нет. Так и читается и видится
Supermax вне форума  
 
Непрочитано 04.08.2014, 15:35
#5
Кулик Алексей aka kpblc
Moderator

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


Если внимательно посмотреть справку по wcmatch, то можно обнаружить интересные моменты...
Код:
[Выделить все]
_$ (setq str "string1, string2")
"string1, string2"
_$ (setq template "*`,*")
"*`,*"
_$ (wcmatch str template)
T
_$ (setq str "string1 string2")
"string1 string2"
_$ (wcmatch str template)
nil
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.08.2014, 15:58
#6
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Ты хочешь сказать, что в шаблоне перед запятой надо ставить апостроф?
Так вот, у меня два списка со строками в них. Из одного списка мне надо сделать список шаблонов где вместо символов юникода и запятых вставить вопросы. Или ты мне предлагаешь ставить для юникода вопросы, а для строк с запятыми - апострофы добавлять? Не лишком ли наворочено получится?

Я до сих пор не могу понять, почему строка с запятыми из словаря AEG и из выкидыша из под метода не хотят быть равны? Я специально код символа и там и там сравнивал - одинаковые. А всё равно не сравнивается.

Всё, внимательно прочёл справку. Запятая - разделяет шаблоны. А = не работает с шаблонами. Да, непростое это дело пользоваться шаблонами. Столько символов надо перелопатить

Последний раз редактировалось Supermax, 04.08.2014 в 16:07.
Supermax вне форума  
 
Непрочитано 04.08.2014, 16:21
#7
Кулик Алексей aka kpblc
Moderator

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


Для работы со строками есть специальные библиотечные функции: http://forum.dwg.ru/showthread.php?t...E0%EC%E5%ED%E0
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как правильно использовать юникод в лиспе?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Акты скрытых работ Витос Прочее. Архитектура и строительство 324 05.03.2015 12:24
Совместная работа архитектора и конструктора в Autodesk Revit wetr Revit 27 22.01.2014 13:55
Сколько может стоить работа по проектированию сборного ЖБИ? jola Организация проектирования и оформление документации 41 21.06.2013 16:29
Интересная работа FOXAL Профессии и трудовые отношения 51 19.02.2010 11:59