|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
NanoCAD-23.1 - как вывести в ASCII файл текст, содержащий unicode-символы
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616
|
||
Просмотров: 894
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
просто акад с 21 версии начал поддерживать юникод в лиспе)
----- добавлено через ~48 мин. ----- хотя по любому писать в текстовой файл с кодировкой ASCII символы юникода бессмысленно же) Вам надо искать - как вывести из лиспа в текстовой файл с кодировкой юникода - например, пост №9 отсюда от Lee Mac Последний раз редактировалось Сергей812, 10.10.2024 в 15:34. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Цитата:
В 99.999% случаев это будет чистый ASCII-текст, редчайшие "вкрапления" в который всяких "\U+XXXX" можно и потерпеть. По крайней мере, меня пока поведение АвтоКАДа в этой части вполне устраивало. Хотя, конечно же, "в идеале...", "когда-нибудь потом..." можно будет заморочиться и на "чистый" unicode-файл. А пока нужна функция, которая ASCII-символы выводит в файл, как ASCII, а юникоды (ежели они вдруг встретятся) - как "\U+XXXX" Т.е. заставить в этом плане NC вести себя, как АС. Если готовой функции на примете ни у кого нет, напишу свою. С перебором строки текста посимвольно. Но пока не могу понять, как, скажем, символу ≥ сопоставить 2265, какая функция на это способна?
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 10.10.2024 в 18:18. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
текстовой файл - это просто последовательность байт, которую можно интерпретировать как текстовые символы. Используется кодировка ASCII - каждый байт как символ, но больше 255 символов никак не засунешь. Unicode - там уже могут быть варианты с количеством байт до 4-х на один символ. Вот нано, похоже, честно и пишет вместо всех символов, коды которых превышают 255 - символ вопроса в кодировке ASCII.
А что, код, который дал в ссылке - не подошел? ----- добавлено через ~2 мин. ----- для начала надо определить - поддерживает ли вообще нанолисп юникод) |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Команда: (vl-string->list "I ≥ 10mA")
(73 32 63 32 49 48 109 65) Информация здесь теряется. :-( Здесь тоже. Команда: (ascii "≥") 63 Для сравнения - в AutoCAD ситуация другая: Команда: (vl-string->list "I ≥ 10mA") (73 32 92 85 43 50 50 54 53 32 49 48 109 65) Команда: (ascii "≥") 92
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 11.10.2024 в 05:51. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Так-то оно нормально будет:
Команда: (vl-list->string '(92 85 43 50 50 54 53)) "\\U+2265" но мне как раз обратное действие нужно... В частном-то случае задача решается, ибо: Команда: (setq a "≥") "≥" Команда: (= a "\U+2264") nil Команда: (= a "\U+2265") T но как решить её "в общем виде" ?
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 11.10.2024 в 07:41. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
в общем виде это решается переходом на язык программирования, который поддерживает юникод (а сам юникод появился еще лет 30 назад). Либо пробовать использовать костыли в виде того же scripting.filesystemobject, который в свою очередь позволяет создавать CreateTextFile с поддержкой юникода.
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Цитата:
В "частном виде" это уже готово, т.к. у меня этих юникодов - по пальцам посчитать. Через (cond ) сделал исключения - там делов-то на несколько строк текста. Оформил отдельной функцией. Перед выводом текста в файл "прогоняю" строку через функцию. Если появятся ещё юникоды - ещё добавлю. Но - думал - может быть есть более общее и уже готовое решение в виде неизвестной мне функции... Цитата:
__________________
Счастливо, Алексей! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли повернуть размерный текст в Revit 2019? | modest-bp | Revit | 1 | 21.05.2025 14:49 |
JavaScript. nanoCAD 5. Экспорт геометрии в позиционный проект Stark ES | Нубий-IV | Готовые программы | 15 | 15.10.2020 17:47 |
Можно ли вывести в файл данные: имя групп и номера КЭ входящих в каждую из групп? | eilukha | SCAD | 0 | 01.05.2018 06:46 |
добавить символы в однострочный текст | ngg | AutoCAD | 12 | 12.04.2017 20:43 |
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. | hwd | Баги и пожелания в Autodesk | 21 | 21.04.2010 20:27 |