Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Через 3 дня :

День славянской письменности и культуры


Код Unicode символа в RTF


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
gavlutsk
Гость







СообщениеПт, 07-Янв-2005 18:30    Заголовок сообщения: Код Unicode символа в RTF
Цитата

В RTF формате код ANSI символа записывается как \'ef
Здесь ef - Hex-представление кода символа.
В Unicode представляется по другому: \u178?
Допустим u...?-Unicode, число - код символа.
178 - это в данном случае: 2 - надстрочный символ или
квадрат числа, в таблице символов юникод - U+00B2
Вопрос: как и откуда можно из '00B2' получить '178'?
Есть ли в Windows API функции такого преобразования?
Еще один вопрос (дополнение):
Как в Label1.Caption:=IntToStr(Ord(#$00B2));
можно вместо #$00B2 написать '00B2' - строку и
получить результат '178'?
В начало
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеСб, 08-Янв-2005 15:03 
Цитата

В Делфи, кажется, достаточно завести переменную типа WideString. Присвоение в/из String будет конвертировать.
_________________
Ответ готов, готов ли твой вопрос?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gavlutsk
Гость







СообщениеСб, 08-Янв-2005 19:28 
Цитата

Все дело в том, что конвертировать из String в WideString не так-то просто, как это кажется. Для того чтоб сделать отчет в FastReport в RichEdit как раз очень надо попотеть. Этим я как раз сейчас и занимаюсь. А вообще с RichEdit и Unicode я уже мучаюсь более полугода. Попробуйте. Тогда и ответы, наверное, конкретнее будут, Шурик, ...
В начало
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеВс, 09-Янв-2005 3:11 
Цитата

Ну ты не очень возмущаяся поверхностным ответом. Почитай -- тут иногда спрашивают про такие очевидные вещи, что не понимаешь, как вобще про такое можно спрашивать. Поскольку никакого диалога в этой ветке не было, я предположил, что это один из таких случаев.

Если ты столь продвинут, то объяснил бы детальней, что ты знаешь, что не выходит. Думаю у большинства здесь присутствующих опыт работы с Юникодом меньше твоего. Может ещё сам чему-то просветишь.

Я могу сказать честно, что с Юникодом сталкивался весьма эпизодически. В основном использовал WideString в интерфейсных функциях СОМов. Пару раз на уровне АПИ что-то конвертировал из Юникода (или в него). На уроне АПИ так и не уяснил пока разницу между multibyte string и wide-character. Для себя пришёл к выводу, что для использования Юникода в Делфи достаточно использовать тип WideString, всё остальное сделает компилятор.

_________________
Ответ готов, готов ли твой вопрос?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеВс, 09-Янв-2005 7:55 
Цитата

Прочёл немного про multibyte. Любопытство одолело :) Правда не понял, какой из множества стандартов используется в WinAPI. Ну да ладно, из того, что прочёл, я понял, что не буду это использовать.

По поводу сложностей конвертации String в WideString. В чём там загвоздки? Мне казалось всё тривиально (в отличии от MBCS): есть AnsiChar и Locale; им однозначно соответствует двухбайтный WideChar. Берёшь n символов - получаешь n*2. Ну и наоборот. Вопрос только в том, чтобы Locale нужная была установленна.
Вобщем, объяснись, раз уж начал разговор.

Цитата:
Как в Label1.Caption:=IntToStr(Ord(#$00B2));
можно вместо #$00B2 написать '00B2' - строку и
получить результат '178'?

IntToStr( StrToInt('$00B2') )
Ты это спрашивал?

_________________
Ответ готов, готов ли твой вопрос?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gavlutsk
Гость







СообщениеВт, 11-Янв-2005 1:16 
Цитата

На счет продвинутости, то тут я скорее всего не продвинут, а уже наверное двинут...
А началось все с того, что в моей программе (обычная база данных, используя *.dbf) попросили,
учитывая солидность фирмы, см2 писать см с 2 в верхнем индексе, да и "дельту" трехугольником
написать и запихнуть это в базу данных...
...ну во-первых dbf такого иметь не захотела, TEdit, TMemo, да и вся остальная "муть" не зависимо
от того какой тип строки ты напишешь... Остался один лишь TRichEdit...
В общем все начало тянуть в сторону Visual Studio (да еще и .NET). Но ведь родной Дельфак все
говорят покруче будет (не считая С++ - у него возможностей поболе будет). И решил я заново
"открывать Армению".
Короче с базами данных я еще в поиске, а вот с визуальной частью начал разбираться конкретно.
Я до сих пор не пойму почему Борланды изначально, начиная с 6 Дельфы, не сделали поддержку
Юникодами всех основных компонентов. Без Юникодов осталась лишь линейка 9х Винды - все NT давно
уже полностью поддержывает Юникоды.
Еще короче - для работы с Юникодами есть такая Tnt компонента - замена стандартных основных
компонентов Делфи. Но тут тоже не все гладко, хотя немного помучавшись работьть можно - альтернативы
пока нет...я во всяком случае не нашел.
RichEdit содержит в своей основе RTF формат. Я начал изучать его написав текст в WordPad и открыв его
в Блокноте - все коды на виду. Но русские символы тут пишутся русскими, а в RichEdit стоят коды, причем
русские символы - шестнадцатиричные коды, а Юникод (я уже выяснил что такое 178) - десятичные.
И все это надо чтоб в RichEdit ввести текст как в Word с разными шрифтами, размерами, символами,
индексами, стилями... А это в свою очередь надо для формирования красивых отчетов с использованием
Юникодов, не зависящих от Microsoft Office и других ему подобных платных.
Проблема еще заключается в том, что распечатать RichEdit очень просто, а сделать предварительный
просмотр, да еще в бланк документа какой-то рисунок вставить...
В общем эту проблему я уже решил - если надо обычный код преобразования могу написать для закрытия
темы, но очень интересуют возможности решения таких преобразований функциями API Windows...
В начало
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100