Доброго времени суток!
Имею следующие вопросы на которые, надеюсь, кто-нибудь сможет помочь найти ответы.
1. Как определить какая кодировка была использована при записи подписи объекта? Правильно ли я понимаю, что если установлен 5ый бит 21го байта заголовка объекта, то подпись кодируется в формате Unicode. Во всех остальных случаях, она зависит от значения "Флага кодировки текстов подписей объектов"? Если нет поправьте. Если да, то почему "Флаг кодировки текстов подписей объектов" имеется сразу в двух местах - в заголовке SXF-файла и в дескрипторе? Они означают одно и тоже? При изменении значения в одном месте, оно также должно быть изменено и в другом? Что произойдет если значения будут разными?
2. Верно ли панорамы различных версий (начиная с 7.25 и заканчивая 11ой) записывают длину подписи в метрике объекта? Судя по документации L должна содержать количество байт, отведенных под текст подписи, исключая себя и терминирующий 0. На деле, в случае с линейное подписью, он включает в себя 0. В случае с шаблоном подписи ведет себя и вовсе странно - при длине подписи в 3 байта, записывает в длину 6. Вы можете возразить, что это из-за того, что каждый символ кодируется двумя байтами, но нет - там действительно 3 байта, за которыми следует \0 и фрагменты следующего подобъекта. Поскольку \0 присутствует всегда, то считать подпись труда не составит, но у меня вопрос - что я должен записывать в это самое L при изменении подписи? Или панорама тоже на него чихать хотела и читает все до первого \0? Как быть?
3. И совсем уж мелочь - при записи количества точек объекта при n < 65535, что записывать в "длинную" длину метрики? Тоже самое, что и в "короткую" или 0?
Надеюсь, кто-нибудь сможет помочь. Заранее спасибо, уважаемым форумчанам!
Имею следующие вопросы на которые, надеюсь, кто-нибудь сможет помочь найти ответы.
1. Как определить какая кодировка была использована при записи подписи объекта? Правильно ли я понимаю, что если установлен 5ый бит 21го байта заголовка объекта, то подпись кодируется в формате Unicode. Во всех остальных случаях, она зависит от значения "Флага кодировки текстов подписей объектов"? Если нет поправьте. Если да, то почему "Флаг кодировки текстов подписей объектов" имеется сразу в двух местах - в заголовке SXF-файла и в дескрипторе? Они означают одно и тоже? При изменении значения в одном месте, оно также должно быть изменено и в другом? Что произойдет если значения будут разными?
2. Верно ли панорамы различных версий (начиная с 7.25 и заканчивая 11ой) записывают длину подписи в метрике объекта? Судя по документации L должна содержать количество байт, отведенных под текст подписи, исключая себя и терминирующий 0. На деле, в случае с линейное подписью, он включает в себя 0. В случае с шаблоном подписи ведет себя и вовсе странно - при длине подписи в 3 байта, записывает в длину 6. Вы можете возразить, что это из-за того, что каждый символ кодируется двумя байтами, но нет - там действительно 3 байта, за которыми следует \0 и фрагменты следующего подобъекта. Поскольку \0 присутствует всегда, то считать подпись труда не составит, но у меня вопрос - что я должен записывать в это самое L при изменении подписи? Или панорама тоже на него чихать хотела и читает все до первого \0? Как быть?
3. И совсем уж мелочь - при записи количества точек объекта при n < 65535, что записывать в "длинную" длину метрики? Тоже самое, что и в "короткую" или 0?
Надеюсь, кто-нибудь сможет помочь. Заранее спасибо, уважаемым форумчанам!