• 8764阅读
  • 11回复

显示二进制文件 [复制链接]

上一主题 下一主题
离线jinyxin
 
只看楼主 倒序阅读 楼主  发表于: 2008-09-18
— 本帖被 XChinux 执行加亮操作(2008-09-20) —
我用QDataStream读取一个二进制文件,要显示里面的内容怎么做,如果要在QMultiLineEdit里显示怎么做?
离线jinyxin
只看该作者 1楼 发表于: 2008-09-18
我的程序是这样的:dianzhen32.dat是一个点阵字库,二进制文件,想在QMultiLineEdit中显示一个字的字模信息,按照我的程序可以编译通过,但是edit里面没有东西,怎么回事?

int main(int argc, char *argv[])
{
    QApplication app(argc,argv);
    QMultiLineEdit *edit=new QMultiLineEdit();
                                                                                         
    QFile file("dianzhen32.dat");
                                                                                         
    if(!file.open(IO_ReadOnly))
    {
        cerr << "Cannot open file for reading:"<< endl;
        return false;
    }
  QDataStream in(&file);
    //in.device()->seek(0);这个地方我想读完定位到文件开头,怎么弄
    char Buffer[32][4];
    in.readRawBytes(Buffer,128);//这里说是有错,把上一句改为char Buffer[128]就没问题
    QString str;
    in>>str;
    edit->setText(str);
    app.setMainWidget(edit);
    edit->show();
    return app.exec();
}
离线jinyxin
只看该作者 2楼 发表于: 2008-09-18
大家帮看看
离线jinyxin
只看该作者 3楼 发表于: 2008-09-18
亲亲们,看看 说说 愁人啊
离线tumblm
只看该作者 4楼 发表于: 2008-09-18
我的也显示不了。。
离线jinyxin
只看该作者 5楼 发表于: 2008-09-19
顶起来 大家帮看看
离线nmiirq

只看该作者 6楼 发表于: 2008-09-19
试试把这一句:
//in.device()->seek(0);这个地方我想读完定位到文件开头,怎么弄
换成
file.seek(0);
看看何如?
离线jinyxin
只看该作者 7楼 发表于: 2008-09-19
我这样操作,出现问题:
./dianzhen -qws
Connected to VFB server: 480 x 480 x 32
QTableView::setCellWidth: (unnamed) Argument out of range (1001423)
文本框里只显示两条竖线,很奇怪,怎么回事?
QTableView::setCellWidth: (unnamed) Argument out of range (1001423)
这句话什么意思?
是不想在文本框里显示二进制文件里内容必须读出的二进制数字用再进行转换?
离线jinyxin
只看该作者 8楼 发表于: 2008-09-19
这个程序中,为什么读出来的数放到一维数组可以,二维就不行?   
  char Buffer[32][4];
  in.readRawBytes(Buffer,128);//这里说是有错,把上一句改为char Buffer[128]就没问题
离线jinyxin
只看该作者 9楼 发表于: 2008-09-20
读出来的二进制文件能显示在文本框吗?
离线jinyxin
只看该作者 10楼 发表于: 2008-09-21
再顶
离线hyh0lh

只看该作者 11楼 发表于: 2014-04-08
我也遇到二进制显示的问题,关注一下。
快速回复
限100 字节
 
上一个 下一个