crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Перекодирование текста в QTextEdit
XXL
  опции профиля:
сообщение 27.6.2010, 22:01
Сообщение #1


Студент
*

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

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




Репутация:   0  


Всем привет!)
У меня возникли проблемы с перекодированием текста в QTextEdit. Первоначально текст туда считываю из файла следующим образом:
QFile file(strFileName);
if (file.open(QFile::ReadOnly) )
{
    QTextCodec *pTextCodec = QTextCodec::codecForMib(iMib);
    if (pTextCodec)
    {
        QByteArray baData = file.readAll();

        QTextStream in(&baData);
        in.setAutoDetectUnicode(false);
        in.setCodec(pTextCodec);

        pTextDoc->setPlainText(in.readAll());
    }
        
    file.close();
}

Начальная кодировка берется из QComboBox с кодировками (примерно такого,как в Qt'шном примере с кодировками Сodecs).
После этого могу в тексте что-то изменить, отредактировать и т.д. и ПОМЕНЯТЬ КОДИРОВКУ с помощью того же QComboBox, но перекодировать текст нормально не получается...
То есть я имею старый QTextCodec, новый QTextCodec, текст (toPlainText()) и хочу перекодировать этот текст из одного в другой, не используя сохранение в промежуточные файлы, чтобы потом нормально считать и т.д....
Подскажите, пожалуйста, как это можно сделать)Заранее большое спасибо)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.6.2010, 22:37
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(XXL @ 28.6.2010, 2:01) *
QByteArray baData = file.readAll();

QTextStream in(&baData);
а зачем этот промежуточный QByteArray?

Цитата(XXL @ 28.6.2010, 2:01) *
не используя сохранение в промежуточные файлы, чтобы потом нормально считать и т.д....
как вариант использовать QBuffer
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XXL
  опции профиля:
сообщение 4.7.2010, 21:55
Сообщение #3


Студент
*

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

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




Репутация:   0  


Спасибо большое!) Благодаря буферу теперь все нормально)
А промежуточный QByteArray существовал некоторое время в процессе отладки, теперь его нет)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 4:16