Russian Qt Forum
Ноябрь 25, 2024, 13:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема при чтении текстовых файлов (Решено)  (Прочитано 5010 раз)
Mihail
Гость
« : Апрель 03, 2011, 19:07 »

Есть текстовый файл "tasks.txt". Открываю его следующим кодом:

Код:
QString fileName = QFileDialog::getOpenFileName(this,
         tr("Inport Tasks"), "c://", tr("Tasks Files (*.csv *.txt)"));
   QFile file(fileName);//"c://tasks.txt"
   if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
   {
   QMessageBox::information(this, tr("Cannot open input file!"), file.errorString());
   return;
   }
   QTextStream input(&file);

  ui->textEdit->setText(input.readAll());

  file.close();

В результате получаю в textEdit текст, представленный во вложении "Screen.jpg"
т.е. нормально отображаются только английские буквы и каждая из букв заключена в прямоугольники.

Текстовый файл, из которого я читаю, во вложении "tasks.zip" (Заархивировал для того, чтобы сервер не изменил кодировку txt файла)

Пытаюсь решить эту проблему уже давно и пробовал разные способы, но пока безрезультатно.

Если кто - нибудь сумеет нормально отобразить содержимое файла "tasks.txt" в  textEdit, пожалуйста напишите как это получилось  сделать.
« Последнее редактирование: Апрель 04, 2011, 12:18 от Mihail » Записан
ilyagoo
Гость
« Ответ #1 : Апрель 03, 2011, 19:56 »

кодировку установить?
Записан
Mihail
Гость
« Ответ #2 : Апрель 03, 2011, 22:28 »

кодировку установить?

Несовсем понял вопрос. Главное, чтобы текст из файла отображался правильно. Чтобы было понятнее что значит "правильно" во вложении "NotepadScreen.jpg" скрин редактора Notepad++, в котором открыт этот текстовый файл.
Записан
madRoger
Гость
« Ответ #3 : Апрель 03, 2011, 22:49 »

Нужно установить необходимую кодировку для корректного чтения.
Попробуй перед чтением: input.setCodec("UTF-16");

У меня все ОК считалось.

UPD: для работы с кириллицей советую посмотреть на QTextCodec.
« Последнее редактирование: Апрель 03, 2011, 22:52 от madRoger » Записан
Mihail
Гость
« Ответ #4 : Апрель 04, 2011, 12:12 »

Нужно установить необходимую кодировку для корректного чтения.
Попробуй перед чтением: input.setCodec("UTF-16");

У меня все ОК считалось.

UPD: для работы с кириллицей советую посмотреть на QTextCodec.

Большое СПАСИБО!!! Всё заработало. Действительно, нужно было перед чтением написать  input.setCodec("UTF-16");  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.