当前位置: 代码迷 >> QT开发 >> QT 对资料头的读写
  详细解决方案

QT 对资料头的读写

热度:44   发布时间:2016-04-25 04:16:23.0
QT 对文件头的读写
请问一下在QT下怎么对 文件头 的读写啊?
注意看是 “文件头” 而不是 “头文件” 哟
网上百度了很久,几乎找不到先关资料,有也是貌似API或者是C语言的,可是我看不懂那些例子,有没有好心人可以教一下在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;
        }
  相关解决方案