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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataStream. Запись-чтение.  (Прочитано 4631 раз)
Андрей
Гость
« : Февраль 28, 2012, 18:50 »

Не могу добиться, чтобы читалось из файла то, что записывал.
Пишу  QChar - записывается сначала какой-то символ (пробел, похоже), потом нужный символ.
Читаю - читается "ненужный символ".

Запись:
    QString FileName = QFileDialog::getSaveFileName(WParent,tr("Save as..."));
    QFile File(FileName);
    bool opened = File.open(QIODevice::WriteOnly);
    if (!opened) return;
    QDataStream output(&File);
    output.setVersion(QDataStream::Qt_4_2);
.....
.....
....
    QChar str ='<';
    Stream<<str;

Чтение:
    QString FileName = QFileDialog::getOpenFileName(WParent,tr("Open"));
    QFile File(FileName);
    bool opened = File.open(QIODevice::WriteOnly);
    if (!opened) return;
    QDataStream input(&File);
    input.setVersion(QDataStream::Qt_4_2);
.....
.....
....
    QChar symbol;
    stream>>symbol;
« Последнее редактирование: Февраль 28, 2012, 19:06 от Андрей » Записан
Странник
Гость
« Ответ #1 : Февраль 28, 2012, 19:57 »

при чтении действительно открываете с флагом QIODevice::WriteOnly или это опечатка? % )
Записан
Андрей
Гость
« Ответ #2 : Февраль 28, 2012, 20:42 »

Спасибо. Исправил.
Тогда ещё вопрос. В файл пишется много лишних символов, это плата за QDataStream? 
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Февраль 28, 2012, 21:18 »

это плата за запись версии и объектов классов, а не чистых данных
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #4 : Март 24, 2012, 01:32 »

Цитировать
при чтении действительно открываете с флагом QIODevice::WriteOnly или это опечатка? % )

Я что то не очень понял. А в чем проблема в флаге QIODevice::WriteOnly?
Записан

Qt 5.11.0, Win, MinGW
mutineer
Гость
« Ответ #5 : Март 24, 2012, 01:39 »

Цитировать
при чтении действительно открываете с флагом QIODevice::WriteOnly или это опечатка? % )

Я что то не очень понял. А в чем проблема в флаге QIODevice::WriteOnly?

WriteOnly, как следует из названия, позволяет только писать
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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