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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как записать в файл ?  (Прочитано 12921 раз)
QtProger
Гость
« : Октябрь 18, 2009, 13:21 »

 Надо записать в файл текст, попробовал вот так, после выполнения этого кода в файле оказалось I?eaao. Как правильно записать в файл ?

Код
C++ (Qt)
  QFile file(fileName);
   file.open(QIODevice::WriteOnly);
   QTextStream text(&file);
   text << "Привет";
Записан
BRE
Гость
« Ответ #1 : Октябрь 18, 2009, 13:27 »

Надо записать в файл текст, попробовал вот так, после выполнения этого кода в файле оказалось I?eaao. Как правильно записать в файл ?
Почитай про кодировки и
void QTextStream::setCodec ( QTextCodec * codec );
void QTextStream::setCodec ( const char * codecName );
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #2 : Октябрь 18, 2009, 13:43 »

+ еще может помочь
text << QStringFromUtf8( "Привет" );
если исходник в utf8
Записан
QtProger
Гость
« Ответ #3 : Октябрь 18, 2009, 13:53 »

Написал text.setCodec("UTF-8"); но все равно получается абракадабра. Не понимаю ! UTF-8 - это юникод, а юникод ведь должен поддерживать русские символы
Записан
QtProger
Гость
« Ответ #4 : Октябрь 18, 2009, 13:59 »

Написал text << QString::fromUtf8( "Привет" );
Теперь в файле вопросительные знаки
Записан
BRE
Гость
« Ответ #5 : Октябрь 18, 2009, 14:02 »

Написал text << QString::fromUtf8( "Привет" );
Теперь в файле вопросительные знаки
А в какой кодировке твои исходники?
Записан
QtProger
Гость
« Ответ #6 : Октябрь 18, 2009, 14:04 »

А в какой кодировке твои исходники?

Как это узнать ?
Записан
BRE
Гость
« Ответ #7 : Октябрь 18, 2009, 14:08 »

Как это узнать ?
В консоле выполни locale.
Записан
QtProger
Гость
« Ответ #8 : Октябрь 18, 2009, 14:10 »

Код:
'locale' is not recognized as an internal or external command,
operable program or batch file.

Я в Винде сижу. Наверно нет такой команды
Записан
BRE
Гость
« Ответ #9 : Октябрь 18, 2009, 14:15 »

Я в Винде сижу. Наверно нет такой команды
В main добавь:
Код
C++ (Qt)
QTextCodec *codec = QTextCodec::codecForName( QTextCodec::codecForLocale() );
QTextCodec::setCodecForTr( codec );
QTextCodec::setCodecForCStrings( codec );
 

Выводи текст:
Код
C++ (Qt)
QFile file(fileName);
file.open(QIODevice::WriteOnly);
 
QTextStream text( &file );
text << QString( "Привет" );
 

Записан
QtProger
Гость
« Ответ #10 : Октябрь 18, 2009, 14:30 »

Выдает ошибку:

error: no matching function for call to `QTextCodec::codecForName(QTextCodec*)'

Код
C++ (Qt)
/*тут ошибка*/QTextCodec *codec = QTextCodec::codecForName( QTextCodec::codecForLocale() );
QTextCodec::setCodecForTr( codec );
QTextCodec::setCodecForCStrings( codec );
Записан
BRE
Гость
« Ответ #11 : Октябрь 18, 2009, 14:32 »

Выдает ошибку:
Это я запарился.  Улыбающийся

Код
C++ (Qt)
QTextCodec *codec = QTextCodec::codecForLocale();
QTextCodec::setCodecForTr( codec );
QTextCodec::setCodecForCStrings( codec );
Записан
QtProger
Гость
« Ответ #12 : Октябрь 18, 2009, 14:58 »

Работает !  Веселый Спасибо !!!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Октябрь 18, 2009, 16:48 »

>>Как это узнать ?
Дык, тебе должно быть виднее.
Записан

Юра.
QtProger
Гость
« Ответ #14 : Октябрь 18, 2009, 17:54 »

Код
C++ (Qt)
QFile file(fileName);
file.open(QIODevice::WriteOnly);
QTextStream text( &file );
text << QString( "Привет" );

QString( "Привет" ) - это функция. Навожу на него мышь, нажимаю F1 и вылезает "QString Class Reference". Что такое QString ? Непонимающий
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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