スポンサーリンク

Qt:バイナリファイルの後ろからデータを読み込む

当サイトは、アフィリエイト広告を利用しています

バイナリファイルの後ろからデータを読み込む

環境:QT5.5

リンク
http://doc.qt.io/qt-5/qbytearray.html
http://doc.qt.io/qt-5/qdatastream.html
http://doc.qt.io/qt-5/qfile.html
http://doc.qt.io/qt-5/qlist.html

インクルードファイル

#include 
#include 
#include 
#include 
    quint32 fileSize;
    QByteArray filePath, fileOwner;

    // ファイルオープン
    // バイナリファイル書き込み時には次のように書き込まれている
  // out << filePath << fileSize << fileACL 
    QFile fp("C:\ProgramData\test\test");
    if ( !fp.open(QIODevice::ReadOnly) ) {
	// Error 
        return false;
    }
    QDataStream in(&fp);

    // ファイルからデータを読み込み(各レコードの先頭位置を取得)
    QList posList;
    while( !in.atEnd() ) {
        posList.append(in.device()->pos());
        in >> filePath >> fileSize >> fileOwner;
    }

    // ファイルの後ろから先頭まで、データを読み込む
    qint64 readPos;
    for ( qint64 i=posList.count()-1; i>=0; i--) {

        readPos = posList.at(i);
        in.device()->seek(readPos);
        in >> filePath >> fileSize >> fileOwner;

        qInfo().noquote() << "FilePath: " << filePath;
        qInfo().noquote() << "fileSize: " << fileSize;
        qInfo().noquote() << "fileOwner: " << fileOwner;

    }

コメント

タイトルとURLをコピーしました