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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Номер символа в shp, shx

Номер символа в shp, shx

Ответ
Поиск в этой теме
Непрочитано 20.08.2008, 17:42 #1
Номер символа в shp, shx
Sleekka
 
-
 
Москва
Регистрация: 24.07.2005
Сообщений: 1,335

Уважаемые коллеги, помогите пожалуйста разобраться в след. вопросе.
Код:
[Выделить все]
*258,27
2,8,(2,0),1,8,(4,14),2,8,(2,-7),1,13,(-8,0,127),(8,0,127),(0,0),2,8,(4,-7),0

*0278,28
2,050,04C,1,8,(0,17),0DC,010,10,4,062,024,10,4,002,028,10,4,022,02C,10,4,042,010,
2,080,0
Это фрагмент shp файла, все символы до 258 включительно становятся такимиже номерами и в shx файле, а вот после я так понимаю символы по ограничениям какой-то системы счисления закончились и начинаются в другой. Вопрос какие системы счисления используются, и как мне отконвертировать номер *0278 в 632 который я вижу в shx. Или я вообще бред написал?
Просмотров: 3928
 
Непрочитано 24.08.2008, 03:23
#2
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


без проверок, только позитивные
Код:
[Выделить все]
(defun Hex2Dec (Hex / Char Len)
  (setq	Char (ascii (strcase (substr Hex 1 1)))
	Char (cond ((<= 48 Char 57) (- Char 48))
		   ((<= 65 Char 70) (- Char 55))
	     )
  )
  (if (zerop (setq Len (1- (strlen Hex))))
    Char
    (+ (* Char (expt 16 Len)) (Hex2Dec (substr Hex 2)))
  )
)
;;;(Hex2Dec "0278")
Vov.Ka вне форума  
 
Непрочитано 25.08.2008, 11:14
#3
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


*258 - в десятичной системе.
*0278 - в шестнадцатиричной системе, первый символ 0 - признак этой системы.
В шрифте правильней использовать только одну из систем исчисления.
Если не забыл. Основная таблица - символы с 0 по 127 (0 - 07F). Расширенная таблица - символы с 128 по 255 (080 - 0FF). Раньше в этой части были прописаны национальные символы.
Сейчас используется Юникодовская система (шестнадцатиричная). Там определено много символов, и для каждого символа прописан свой код. Для большого колическва языков выделена своя группа кодов (кириллица в группе 0400 – 04FF).
Для совместимости шрифтов, лучше использовать этот стандарт. Но может возникнуть проблема со старыми наработками и старыми шрифтами SHX. Ведь символ на экране, это только отображение, в файле прописан код символа.
KSI вне форума  
 
Непрочитано 25.08.2008, 13:55
#4
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Кстати есть программа, написанная Александром Ривилисом, для перекодирования старых (неюникодовских) shx-шрифтов в юникодовские.
AY вне форума  
 
Автор темы   Непрочитано 25.08.2008, 14:48
#5
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


2Vov.Ka спасибо за перевод чисел, но лиспик пока не запускал
2KSI спасибо за информацию, буду переваривать
2AY
Цитата:
Кстати есть программа, написанная Александром Ривилисом, для перекодирования старых (неюникодовских) shx-шрифтов в юникодовские.
Да это я знаю, но я не понял как ее применить в данном случае по-моему она несколько для другого.
Sleekka вне форума  
 
Непрочитано 25.08.2008, 17:39
#6
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Не совсем в тему:
Когда я добавлял свои символы в шрифт, то старался их добавлять до 999d (03E7h). Потому как их можно вызвать через %%999. Все что за 999 приходится вызывать через \U+03E8.
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Автор темы   Непрочитано 25.08.2008, 19:21
#7
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Цитата:
Не совсем в тему:
Когда я добавлял свои символы в шрифт, то старался их добавлять до 999d (03E7h). Потому как их можно вызвать через %%999. Все что за 999 приходится вызывать через \U+03E8.
Это кстати в тему, потому как если в dtext вставлять символы методом %%999 - то они нормально работают, а вот если \U+03E8, то тогда стирается ноль и символ превращается в билиберду (с использованием штатного редактора dtexta). \U+03E8 - работает корректно только в mtext-е и вставляется как ttf. Кароче с мтехтом бред полный, или я неумею работать.
Sleekka вне форума  
 
Непрочитано 03.09.2008, 18:05
#8
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Цитата:
Сообщение от Sleekka Посмотреть сообщение
Это кстати в тему, потому как если в dtext вставлять символы методом %%999 - то они нормально работают, а вот если \U+03E8, то тогда стирается ноль и символ превращается в билиберду (с использованием штатного редактора dtexta). \U+03E8 - работает корректно только в mtext-е и вставляется как ttf. Кароче с мтехтом бред полный, или я неумею работать.
Все очень просто! Если в векторном шрифте нет того символа который набираешь, то он должен отобразиться знаком вопроса - это если набирать в однострочном тексте. Если в многострочном то не найденный символ будет искаться в любом другом ttf шрифте. Возможно в соответствии с файлом подстановки или возможно ближайший по списку шрифт в котором встретится символ... - не проверял.
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Номер символа в shp, shx

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить символ из shx шрифта Red Nova AutoCAD 17 31.05.2019 11:23
Инвентарный номер чертежа. Что это? Alxd Прочее. Архитектура и строительство 30 24.06.2014 09:48
Компиляция SHP Алек(андр Прочее. Программное обеспечение 1 04.07.2011 11:18
Глобальный номер уравнения vasea Прочее. Архитектура и строительство 5 10.01.2007 19:37