| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Кириллица и AnsiString |
| Автор: StamSvam 8.7.2012, 14:33 |
| Билдером начал заниматься только сегодня, поэтому периодически натыкаюсь на какие-нибудь подводные камни и не знаю, как их обойти. Проблема такая, у меня имеется структура, содержащая массивы Char. Для того, чтобы вывести в поле Memo элемент структуры, необходимо привести Char к AnsiString. Перед этим нужно сравнить массив Char и забитую в поле Edit строку. Все бы ничего, но вот массивы у меня содержат строки на русском языке. И при приведении AnsiString к Char методом Text.c_str() для сравнения с исходным массивом Char в новом массиве записываются всякие гадости. Например: исходная строка "Константин" в AnsiString выглядит как "Љ®-бв -вЁ-" и с точность до наоборот. Подскажите, пожалуйста, как мне массив символов Char превратить в AnsiString и из AnsiString в Char без изменения русского слова? |
| Автор: Alexeis 8.7.2012, 16:25 |
| Какая версия билдера? |
| Автор: StamSvam 8.7.2012, 18:34 |
| Alexeis, версия Borland C++ Builder 6. Все облазил. Нашел на одном форуме только запись о том, как переводить и фразу "с кириллицей скорее всего будут проблемы".. |
| Автор: Alexeis 8.7.2012, 20:13 |
| StamSvam, указанные операции не портят содержимого строк. Обычно такие бяки бывают при конвертации из юникода в Ansi и обратно. Нужно посмотреть код, который портит. Вероятно там есть что-то еще. |
| Автор: StamSvam 8.7.2012, 20:31 |
| Не могли бы Вы по подробнее рассказать, что именно смотреть, пожалуйста. |
| Автор: StamSvam 8.7.2012, 21:22 |
| Спасибо большое!! |