Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ShowMessage c UnicodeString-ом 
:(
    Опции темы
RPGer
Дата 17.5.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



Добрый день! c++ builder 2010.
Есть переменная 
UnicodeString tmp;
Которая считывается из файла в формате unicode
мне нужно вывести её ShowMessage-ом. Подскажите как!
Делал так: ShowMessage(_T(tmp)); Но так не получается.
PM MAIL   Вверх
cyberstream
Дата 17.5.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



Код

MessageBoxW(Handle,L"сообщение", L"заголовок", MB_OK);

--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
RPGer
Дата 17.5.2010, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



Вы меня не правильно поняли. Мне нужно вывести именно текст из переменной.
PM MAIL   Вверх
Dem_max
Дата 17.5.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



а что то типа такого не прокатит ?

Код

ShowMessage(tmp.c_str());


возможно в классе UnicodeString есть какой нить метод c_str()


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
RPGer
Дата 17.5.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



2Dem_max:
Все получилось!
Спасибо за ответы smile
PM MAIL   Вверх
cyberstream
Дата 17.5.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



В чём затрудение?  smile 
Код

MessageBoxW(Handle,WideString(tmp), L"заголовок", MB_OK);

--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
RPGer
Дата 17.5.2010, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



WideString(tmp)
Так вместо текста "краказябры" выходят. У меня же текст в unicode.
PM MAIL   Вверх
cyberstream
Дата 18.5.2010, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



Цитата(RPGer)
У меня же текст в unicode.

Хорошо бы в этом убедиться!  smile 
--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
Dem_max
Дата 18.5.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Ну в моем билдере 2006 нет UnicodeString

Но в WideString это выглядит так.

Код

WideString ddd = L"Привет чувак";
char txt[1000] = "";
WideCharToMultiByte(CP_ACP, 0, ddd.c_bstr(), -1, (char *)txt, ddd.Length(), NULL, NULL);
Application->MessageBoxA(txt, "Прога", MB_OK);



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
cyberstream
Дата 18.5.2010, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



Смысл переводить Юникод в ANSI codepage? А если таки будет нужен universal character set?
Код

WideString ddd = L"Привет чувак. \rЖил-был арабский мудрец, да сказал: \u0634\u0686\u06b4\u06f3\u06ae\u06de\u00A3\u00A3\u00A3\u06E9.";
ddd += L"\rНо видит - не звучит, изрёк на иврите: \u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05d0\u00A3\u00A3\u00A3\u05d2";
ddd += L"\r А мораль - передать \u00A3\u00A3\u00A3\ всяк язык силен";
MessageBoxW(Handle,ddd, L"заголовок", MB_OK);




Это сообщение отредактировал(а) cyberstream - 18.5.2010, 12:54
--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
Dem_max
Дата 18.5.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



тогда уж так
Код

MessageBoxW(Handle, ddd.c_bstr(), L"заголовок", MB_OK);


Цитата

Смысл переводить Юникод в ANSI codepage?

Да постоянный смысл есть, не все приложения понимают юникок, поэтому приходиться конвертировать данные в char.

Это сообщение отредактировал(а) Dem_max - 18.5.2010, 12:23


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0986 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.