2

ファイルの形式に関係なく、ファイルからバイナリ値を取得したい場合、どうすればよいですか? このコードを試してみましたが、テキスト ファイルを 1 行ずつしか読み取れず、それ以上のことはできません。

QFile file(QFileDialog::getOpenFileName (this, tr("Open File"),
                                         "",tr("")));
if (!file.open(QIODevice::ReadOnly ))
        return ;
int size = file.size();
qDebug()<<size;
while (!file.atEnd()) {
      QByteArray line = file.readLine();
      qDebug()<<line;
4

2 に答える 2

2

データを読み込むバッファを割り当て、QFile::read 関数を使用します。例えば:

qint64 bufSize = 1024;
char *buf = new char[bufSize];
qint64 dataSize;
while (!file.atEnd()) {
    dataSize = file.read(buf, bufSize);
    /* process data */
}
于 2012-08-13T09:01:05.053 に答える
0

char の配列だけでなく、他の型にも読み込むことができます。たとえば、ファイルから構造を読み取る:

struct Foo
{
  int bar;
  long foobar;
}
//...
Foo foo1;
file.read(foo1, sizeof(Foo));
于 2012-08-13T11:39:28.283 に答える