Поиск:

Ответ в темуСоздание новой темы Создание опроса
> из CStringA в CString, преобразование 
:(
    Опции темы
IGanja
Дата 24.7.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код


CString sCase = "";

CDBVariant varValue; 
rs.GetFieldValue( i, varValue );

if( DBVT_NULL == varValue.m_dwType )
    sCase = _T( " IS NULL" );
else if( DBVT_ASTRING == varValue.m_dwType )
    sCase.Format( "%s", varValue.m_pstring );
 


Как не старался, какие знаки после "%" не ставил, значением sCase становять исключительно неприличные слова smile  А хотелосьбы всетаки правильное преобразование.


Это сообщение отредактировал(а) IGanja - 24.7.2007, 16:31
PM MAIL   Вверх
zkv
Дата 24.7.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



IGanja, вообще постановка вопроса неправильна:
Цитата

 из CStringA в CString

потому что программисту не нужно, по идее, знать о существовании CStringA и CStringW. 
Он только должен знать о существовании настроек юникода в проекте.
По поводу:
Цитата(IGanja @  24.7.2007,  16:30 Найти цитируемый пост)
Как не старался, какие знаки после "%" не ставил

чтобы вписать wchar_t*-строку в char*-строку юзай формат %ws
PM MAIL   Вверх
IGanja
Дата 24.7.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я бы и рад ничего не знать о существовании CStringA и CStringW. 

К сожалению %ws - не сработал

Спасибо zkv, проблема решилась сама собой

Это сообщение отредактировал(а) IGanja - 24.7.2007, 17:18
PM MAIL   Вверх
Coocky
Дата 25.7.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



zkv, была у меня одна ситуация.Проекты у меня всегда Юникод.Но попалась функция.где алгоритм должен был работать с АНСИ строкой.
Вот так примерно я сделал.
Код

LPCWSTR domm=(LPCWSTR) user_name.GetBuffer();
int d=WideCharToMultiByte(CP_ACP,0,domm,-1,NULL,NULL,NULL,NULL);
char *temp=new char [d];
WideCharToMultiByte(CP_ACP,0,domm,-1,(LPSTR)temp,d,NULL,NULL);
CStringA nm
nm.SetString(temp);
delete []temp;



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Earnest
Дата 26.7.2007, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Не понимаю, чего вы паритесь. Строки обоих типов прекрасно друг в друга преобразовываются: у них есть шаблонные конструкторы и операторы присваивания. Вот этот код нормально компилируется и работает:

Код

   CStringA strA = "abc";
   CStringW strW(strA);
   strA = strW;


Конечно, все это правильно насчет WideCharToMultiByte и т.д., но это уже прописано внутри ATL\MFC.


--------------------
...
PM   Вверх
Gun
Дата 6.9.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня такой вопрос (может немного не по теме): Существуют ли в C++ команды аналог strtoint() в
inttostr() в Delphi то есть преобразование числа в строку и наоборот?
PM MAIL   Вверх
Andrey44
Дата 6.9.2007, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Смотри itoa(......) и atoi(......). smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
zkv
Дата 6.9.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



а еще 
sprintf(), sscanf()
std::strstream
CString::Format(), CString::AppendFormat()
еще в boost'е что-то есть...
PM MAIL   Вверх
Greeen
Дата 6.9.2007, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



boost::lexical_cast


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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