Russian Qt Forum

Qt => Общие вопросы => Тема начата: Примерный ученик от Ноябрь 04, 2009, 13:21



Название: Чтение из файла в QByteArray
Отправлено: Примерный ученик от Ноябрь 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


Название: Re: Чтение из файла в QByteArray
Отправлено: _OLEGator_ от Ноябрь 04, 2009, 14:37
а так?
Код
C++ (Qt)
QByteArray QIODevice::read ( qint64 maxSize )
QByteArray QIODevice::readAll ()

QT 3.3.8... видимо там такого еще нет...


Название: Re: Чтение из файла в QByteArray
Отправлено: Примерный ученик от Ноябрь 04, 2009, 14:45
А как мне QIODevice указать файл, с которого тянем информацию?


Название: Re: Чтение из файла в QByteArray
Отправлено: _OLEGator_ от Ноябрь 04, 2009, 14:52
QFile унаследован от QIODevice, тоесть напрямую
Код
C++ (Qt)
file.read( qint64 maxSize )
file.readAll()


Название: Re: Чтение из файла в QByteArray
Отправлено: Примерный ученик от Ноябрь 04, 2009, 14:57
Но в QFile усть возможность указать имя файла, а у QIODevice я ничего подобного не вижу ???


Название: Re: Чтение из файла в QByteArray
Отправлено: _OLEGator_ от Ноябрь 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.

не пойму в чем теперь проблема...


Название: Re: Чтение из файла в QByteArray
Отправлено: _OLEGator_ от Ноябрь 04, 2009, 15:10
потому что QFile - для чтения из файлов, конечно там имя файла указываешь
QBuffer - для чтения, записи в памяти, он не работает с файлами...
QIODevice - вообще базовый класс.

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


Название: Re: Чтение из файла в QByteArray
Отправлено: Примерный ученик от Ноябрь 04, 2009, 16:18
Понял, использовать методы QIODevice из QFile; CПС


Название: Re: Чтение из файла в QByteArray
Отправлено: _OLEGator_ от Ноябрь 04, 2009, 16:40
если тебе не просто надо читать все бинарные данные единым блоком, а разбирать их, можно посмотреть еще QDataStream