crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проюлемы с кодировкой и записью в файл...
terrible
  опции профиля:
сообщение 17.1.2008, 16:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 16.10.2007
Пользователь №: 13

Спасибо сказали: 1 раз(а)




Репутация:   0  


Пытаюсь делать это так:
    QFile fileWrite( "d:\\temp.tmp");
    if( !fileWrite.open( QIODevice::WriteOnly))
    {
        qCritical( "Can'not open file: %s for read", "d:\\temp.tmp");
        return -1;
    }
    
    QString arr[] = { "тест 1",  "тест 2", "тест 2"};

    QTextCodec *pCodec = QTextCodec::codecForName( "windows-1251");
    QTextCodec::setCodecForCStrings( pCodec);

    QTextStream in( &fileWrite);
    in.setCodec( pCodec);
    for( int n = 0; n < 3; n++)
        in << arr[n] << " ";
    fileWrite.close();
Но в файл записывется обракадабра. :(
Причем если строку:
QString arr[] = { "тест 1",  "тест 2", "тест 2"};
перенести за setCodecForCStrings, то все нормально, почему?

Я не могу переносить потому, что у меня массив глобальный, и он инициализирется раньше вызова функции main.

Как это обойти?

Сообщение отредактировал terrible - 17.1.2008, 16:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
archimed7592
  опции профиля:
сообщение 17.1.2008, 16:56
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(terrible @ 17.1.2008, 16:46) *
перенести за setCodecForCStrings, то все нормально, почему?

Потому что инициализация строк происходит с другим кодэком(т.е. до того, как ты выставил кодэк).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.12.2024, 13:40