Название: Char* .... Отправлено: pupapum от Апрель 25, 2008, 10:59 Привет, не могу понять почему.
вот Код: Код: char* fromQStringToChar(QString str) Название: Re: Char* .... Отправлено: pupapum от Апрель 25, 2008, 11:12 Люди там строчка tmpC = var.toChar().toAscii();, почему - то у нее пропадает при tmpC.
Админы обратите внимание. я писал: Код: tmpC[i] = var.toChar().toAscii(); Пробовал редактировать и там показывает он все правильно, когда сохраняшь получаешь tmpC = var.toChar().toAscii(); . Вот =) Потому что теги КОД нужно юзать, я уже писал неоднократно про это Название: Re: Char* .... Отправлено: vaprele07 от Апрель 25, 2008, 11:24 не путай size (размер) и length(число элементов)
возможно я тебя не понял ::) Название: Re: Char* .... Отправлено: pupapum от Апрель 25, 2008, 11:29 В ассистанте написано что это одно и тоже, я говорю, что размер возвращается правильный, но char создается на где - то на 15 элементов больше
Название: Re: Char* .... Отправлено: pastor от Апрель 25, 2008, 12:44 А нелегче сделать так:
Код: char* fromQStringToChar(const QString &str) Название: Re: Char* .... Отправлено: BRE от Апрель 25, 2008, 20:35 2 Pupapum
QString хранит строки в юникоде. Какую строку преобразуешь? Интересно, а зачем тебе это надо, да еще так извращенно? ;) Название: Re: Char* .... Отправлено: DenKor от Апрель 30, 2008, 13:41 Я использую такую же процедуру по смыслу.
Т.е. мне нужно из строки QString преобразовать строку в тип char* в локальной кодировке. Нужно из-за того, что есть движок работы с базой данных в которой поля и процедуры работают с типом char* . Использую макрос qPrintable() и его модификацию для записи в кодировке отличной по умолчанию от локальной . Название: Re: Char* .... Отправлено: pastor от Апрель 30, 2008, 14:40 Я использую такую же процедуру по смыслу. Т.е. мне нужно из строки QString преобразовать строку в тип char* в локальной кодировке. Нужно из-за того, что есть движок работы с базой данных в которой поля и процедуры работают с типом char* . Использую макрос qPrintable() и его модификацию для записи в кодировке отличной по умолчанию от локальной . Как вы используете qPrintable()? Есть подводные камни при работе с ним Название: Re: Char* .... Отправлено: DenKor от Май 02, 2008, 09:15 Как вы используете qPrintable()? Есть подводные камни при работе с ним Код: void QStrToOem(QString *s,unsigned char* buffer,int *len) Что за подводные камни ? Название: Re: Char* .... Отправлено: Sergeich от Май 02, 2008, 09:45 Cи-строки (char*) должны заканчиваться нулевым символом:
Код: char* fromQStringToChar( const QString& str ) Код: cstr = str.toLocal8Bit(); Название: Re: Char* .... Отправлено: pastor от Май 02, 2008, 12:33 Что за подводные камни ? В такой комбинации strcpy(buffer,qPrintable(s)); все ок. Я имел ввиду случай, когда: Код: const char *ch = qPrintable(str); при этом указатель ch после вызова qPrintable(str) будет невалиден. Название: Re: Char* .... Отправлено: DenKor от Май 02, 2008, 14:08 Что за подводные камни ? В такой комбинации strcpy(buffer,qPrintable(s)); все ок. Я имел ввиду случай, когда: Код: const char *ch = qPrintable(str); при этом указатель ch после вызова qPrintable(str) будет невалиден. Эта особенность прописана в справочной документации. |