首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT 对资料头的读写

2013-01-08 
QT 对文件头的读写请问一下在QT下怎么对 文件头 的读写啊?注意看是 “文件头” 而不是 “头文件” 哟网上百度

QT 对文件头的读写
请问一下在QT下怎么对 文件头 的读写啊?
注意看是 “文件头” 而不是 “头文件” 哟
网上百度了很久,几乎找不到先关资料,有也是貌似API或者是C语言的,可是我看不懂那些例子,有没有好心人可以教一下在QT下如何对 文件头 进行读写?

本人学生,最近在做一个功能,就是把 一个文件的文件头进行修改,此时它就会变成一个不可识别的文件类型,然后在把它的图标关联到一个自定义的图标里面。

有没有牛人提供相关的具体操作实现?拜托了·····

最近比较赶时间,就差这个功能了
QT 对资料头的读写
[解决办法]
先QFile把文件加载过来, 然后QDateStream把文件和流关联起来. 然后直接操作流就可以了
[解决办法]

引用:
引用:二进制只是一串二进制编码,完全看你怎么读出来.怎么读出来的,再怎么写回去。

7楼的朋友你好,我是这样读出来的:
    in.setVersion(QDataStream::Qt_4_8);
    quint32 fileMagic;
    in >> fileMagic;
    qDebug() << fileMag……


void MainWindow::on_actionLock_triggered()
{
    QString str = QFileDialog::getOpenFileName();
    if(str.isEmpty()){
        return;
    }
    QByteArray ba;
    {
        QFile file(str);
        if(!file.open(QFile::ReadOnly)){
            return;
        }
        QDataStream in(&file);
        in >> m_d;
        ba = file.readAll();
    }
    {
        QFile file(str);
        if(!file.open(QFile::WriteOnly)){
            return;
        }
        QDataStream out(&file);
        out << 0xFFFF;
        out << ba;
    }

}

上面的代码是破坏文件的。
void MainWindow::on_actionUnlock_triggered()
{
    QString str = QFileDialog::getOpenFileName();
    if(str.isEmpty()){
        return;
    }
    QByteArray ba;
    {
        QFile file(str);
        if(!file.open(QFile::ReadOnly)){
            return;
        }
        QDataStream in(&file);
        quint32 sk;
        in >> sk;
        ba = file.readAll();
    }
    {
        QFile file(str);
        if(!file.open(QFile::WriteOnly)){
            return;
        }


        QDataStream out(&file);
        out << m_d;
        out << ba;
    }

}


上面的是恢复文件的。
用上面的代码需要声明一个 quint32 m_d的类变量储存文件的前4个字节。

热点排行