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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Чтение с файла  (Прочитано 13048 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #15 : Декабрь 12, 2012, 12:03 »

Да убрал ее.
Тогда он в дебаге не выдает ничего
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #16 : Декабрь 12, 2012, 12:06 »

А нет все норм  Строит глазки
прошу прощения.

А если считать несколько символов то в цикл забить и запихивать в массив?
Записан
mutineer
Гость
« Ответ #17 : Декабрь 12, 2012, 12:15 »

Что? Ты читал вообще кусок доки, который я кинул? QDataStream считывает не один символ, а строку, завершающуюся нулем
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #18 : Декабрь 12, 2012, 12:19 »

 Грустный
да тогда надо по другому делать будет
Все понял
Код:
QDataStream & QDataStream::operator>> ( char *& s )

This is an overloaded function.

Reads the '\0'-terminated string s from the stream and returns a reference to the stream.

Space for the string is allocated using new -- the caller must destroy it with delete[].
Спасибо Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #19 : Декабрь 12, 2012, 13:08 »

Подсккажите ,что здесь не правильно
qDebug() не выводит 44, а выводит 0
Код:
        QBuffer buffer;
        buffer.open(QBuffer::ReadWrite);

        QDataStream out(&buffer);
        int i = 44;
        out << i;
        out >> DynamicData;
        qDebug()<<"BinaryData = "<<DynamicData;

« Последнее редактирование: Декабрь 12, 2012, 13:10 от demaker » Записан
mutineer
Гость
« Ответ #20 : Декабрь 12, 2012, 13:12 »

Неправильно работаешь с потоком. После записи указатель стоит после записанного 44 и читать оттуда нечего
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #21 : Декабрь 12, 2012, 13:21 »

А как надо?
Записан
mutineer
Гость
« Ответ #22 : Декабрь 12, 2012, 13:22 »

Как надо что? я смысла практического в приведенном коде ни вижу
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #23 : Декабрь 12, 2012, 13:28 »

Пытаюсь разобраться как правильно работать с потоками ввода и вывода.
Потому что по работе с файлом ничего не получается.
Вот и пробую на элементарном уровне понять как и что работает.


Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #24 : Декабрь 12, 2012, 13:42 »

каждая операция чтения/записи двигает «курсор» вперёд. пропустить байты можно с помощью QDataStream::skipRawData(int), установить произвольную позицию «курсора» — dataStream.device()->seek(int)
Записан

Изучением 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
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #25 : Декабрь 12, 2012, 14:50 »

Ум понятно.
А скажите а вот бинарный файл запихнуть в массив  типа char вот можно:
Код:
 
 char* massive ;
 
 QDataStream in(pFile);
 massive = new char[length];
 in.setVersion(QDataStream::Qt_4_7);
 while(in.atEnd())
 {
      in.readBytes(massive+i, len);  
      i++;
  }

а то не пойму как работает readBytes.
Записан
mutineer
Гость
« Ответ #26 : Декабрь 12, 2012, 14:52 »

Можно, разрешаю. А почему побайтно и зачем тут вообще QDataStream? Ну и пользуешься функцией readBytes ты неправильно
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #27 : Декабрь 12, 2012, 14:58 »

А почему побайтно и зачем тут вообще QDataStream?

Побайтно потому что бинарный файл будет.
а как без него QDataStream?
Записан
mutineer
Гость
« Ответ #28 : Декабрь 12, 2012, 15:02 »

А вот прямо через QFile::read. И не побайтно, а много байт сразу. Этому бинарность никак не мешает
Записан
mutineer
Гость
« Ответ #29 : Декабрь 12, 2012, 15:13 »

У базового класса она есть
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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