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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чтение из файла в QByteArray  (Прочитано 11567 раз)
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« : Ноябрь 04, 2009, 13:21 »

Код:
QByteArray bf;
if (file.open(IO_ReadOnly))
file.readBlock(bf,file.size());
         

компилятор ругается
Код:
error C2664: 'QFile::readBlock' : cannot convert parameter 1 from 'QByteArray' to 'char *'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called


Как с этим справится?

QT 3.3.8
VC2005
Записан

Как мало времени и как много нужно узнать
_OLEGator_
Гость
« Ответ #1 : Ноябрь 04, 2009, 14:37 »

а так?
Код
C++ (Qt)
QByteArray QIODevice::read ( qint64 maxSize )
QByteArray QIODevice::readAll ()

QT 3.3.8... видимо там такого еще нет...
« Последнее редактирование: Ноябрь 04, 2009, 14:44 от _OLEGator_ » Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #2 : Ноябрь 04, 2009, 14:45 »

А как мне QIODevice указать файл, с которого тянем информацию?
Записан

Как мало времени и как много нужно узнать
_OLEGator_
Гость
« Ответ #3 : Ноябрь 04, 2009, 14:52 »

QFile унаследован от QIODevice, тоесть напрямую
Код
C++ (Qt)
file.read( qint64 maxSize )
file.readAll()
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #4 : Ноябрь 04, 2009, 14:57 »

Но в QFile усть возможность указать имя файла, а у QIODevice я ничего подобного не вижу Непонимающий
Записан

Как мало времени и как много нужно узнать
_OLEGator_
Гость
« Ответ #5 : Ноябрь 04, 2009, 14:59 »

The QIODevice class is the base interface class of all I/O devices in Qt

Inherited by Q3Socket, Q3SocketDevice, QAbstractSocket, QBuffer, QFile, QLocalSocket, QNetworkReply, and QProcess.

не пойму в чем теперь проблема...
Записан
_OLEGator_
Гость
« Ответ #6 : Ноябрь 04, 2009, 15:10 »

потому что QFile - для чтения из файлов, конечно там имя файла указываешь
QBuffer - для чтения, записи в памяти, он не работает с файлами...
QIODevice - вообще базовый класс.

Поэтому для чтения из файла и надо использовать QFile, у которого только и есть указание файла...
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #7 : Ноябрь 04, 2009, 16:18 »

Понял, использовать методы QIODevice из QFile; CПС
Записан

Как мало времени и как много нужно узнать
_OLEGator_
Гость
« Ответ #8 : Ноябрь 04, 2009, 16:40 »

если тебе не просто надо читать все бинарные данные единым блоком, а разбирать их, можно посмотреть еще QDataStream
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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