• 8702阅读
  • 10回复

我在用QDataStream读写文件时,在本机上运行正常,但无法在别电脑上运行 [复制链接]

上一主题 下一主题
离线liujun_seu
 

只看楼主 倒序阅读 楼主  发表于: 2009-01-16
— 本帖被 XChinux 执行加亮操作(2009-01-18) —
我在用QDataStream读写文件时,在本机上运行正常,但无法在别的电脑上运行,望达人指点

QFile file("re");
file.open(QIODevice::ReadOnly);   
QDataStream streamRe(&file);
QDateTime temp;
streamRe >> temp;
file.close();

streamWr << QDateTime::currentDateTime();
用Qtextstream时也遇到些问题,但把文件用记事本打开,另存为时选Unicode方式就可以读了,但每次写后又变成ANsic方式了
离线lj_0212

只看该作者 1楼 发表于: 2009-01-16
信息不足啊,你别的程序可以在那台机器上跑么?
[ 此贴被lj_0212在2009-01-16 15:18重新编辑 ]
离线liujun_seu

只看该作者 2楼 发表于: 2009-01-16
谢谢,可以的,我只要把读写文件的代码注释了,就可以运行
离线lj_0212

只看该作者 3楼 发表于: 2009-01-16
代码大吗?放上来瞧瞧!
离线liujun_seu

只看该作者 4楼 发表于: 2009-01-16
QFile file("re");
    if (!file.exists())
    {
        QMessageBox::critical(0, QObject::tr("Error"), QObject::tr("找不到文件"));
        //return -1;
    }
    if (file.open(QIODevice::ReadOnly))
    {
        QMessageBox::critical(0, "Error", QObject::tr("open(QIODevice::ReadOnly)打开文件失败"));
        return -1;
    }
    QDataStream streamRe(&file);
while ( !streamRe.atEnd())
    {
        QDateTime temp;
        streamRe >> temp;
.................................
.........................
    }
    file.close();
离线liujun_seu

只看该作者 5楼 发表于: 2009-01-16
QDataStream streamWr(&file);
    streamWr << QDateTime::currentDateTime();
    file.close();
离线lj_0212

只看该作者 6楼 发表于: 2009-01-16
看了半天也看不出什么问题,要不然你设置一下version看看。
离线liujun_seu

只看该作者 7楼 发表于: 2009-01-16
我刚设置了,不管用啊,谢谢啊~~~~
离线duduqq

只看该作者 8楼 发表于: 2009-01-16
看看是不是少了库
离线fanzhichao

只看该作者 9楼 发表于: 2009-01-17
用Qtextstream时也遇到些问题,但把文件用记事本打开,另存为时选Unicode方式就可以读了,但每次写后又变成ANsic方式了

你应该先设置QTextScream的编解码方式,ASCII用GBK:
QTextStream stream(&file);
  m_pCodec  = QTextCodec::codecForName("GBK");
  stream.setCodec(m_pCodec);
UNICODE的不用设置,用默认的解码方式就能读出。
离线liujun_seu

只看该作者 10楼 发表于: 2009-01-21
谢谢大家,问题解决了,的确是qcncodecs4的问题
详细地说就是在可执行文件同目录下建个qt.conf文件[Paths]
Plugins = plugins ,然后把qcncodecs4带上
快速回复
限100 字节
 
上一个 下一个