• 5665阅读
  • 5回复

聊天记录的写入问题 [复制链接]

上一主题 下一主题
离线jaylittle
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-24
经过再三考虑,我决定还是用相对简单的读写TXT文件来存储显示聊天记录
QT的帮助文档上面的例子如下:
     QFile file("out.txt");
     if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
         return;

     QTextStream out(&file);
     out << "The magic number is: " << 49 << "\n";
我现在想把聊天记录放在一个txt文件里面,如果没有,就创建一个一样名字的,代码如下:
   QString   recordFile = "/msghistory/AtoB.txt"; //假如为A与B对话
   QFile data(recordFile);
   if (!data.open(QIODevice::WriteOnly | QIODevice::Text))
        return;      
   QTextStream out(&data);
   out << "\n"<<nowDateTime.toString("yyyy-MM-dd hh:mm:ss") << " " << nickName << QString::fromLocal8Bit("说道:") << "\n" << message << "\n";//以时间,人名,内容(message)的方式储存在文件里


可是我去查msghistory文件夹,里面并没有生成AtoB.txt文件;于是我又自己创建一个AtoB.txt,但是里面没有没有储存聊天记录,这是为什么呢?
只看该作者 1楼 发表于: 2009-02-24
回 楼主(jaylittle) 的帖子
   QString   recordFile = "/msghistory/AtoB.txt"; //假如为A与B对话

权限有么……

另外……close了么

你这么开qfile,出了这个域,这个qfile可就没了
离线jaylittle
只看该作者 2楼 发表于: 2009-02-25
Re:回 楼主(jaylittle) 的帖子
引用第1楼都市无名者于2009-02-24 23:56发表的 回 楼主(jaylittle) 的帖子 :
   QString   recordFile = "/msghistory/AtoB.txt"; //假如为A与B对话
权限有么……
另外……close了么
.......


说得对啊,我只注意怎么实现写操作了,忽略了别的东西......您的权限是指什么,我不是很明白
离线laurentium
只看该作者 3楼 发表于: 2009-02-25
如果用文本存储的话,用xml来存储聊天记录比较好,取消了格式设置后,这个xml文件的体积会变得很小,适合做长期的存储,或者网络传输,比如你想把聊天记录传到服务器上去什么的
离线jaylittle
只看该作者 4楼 发表于: 2009-02-25
引用第3楼laurentium于2009-02-25 09:21发表的  :
如果用文本存储的话,用xml来存储聊天记录比较好,取消了格式设置后,这个xml文件的体积会变得很小,适合做长期的存储,或者网络传输,比如你想把聊天记录传到服务器上去什么的


我本来也想用XML的,不过貌似比较难上手,就放弃了。。。
离线jaylittle
只看该作者 5楼 发表于: 2009-02-25
搞定了,我改成这样了:
        QString   recordFile = "AtoB.txt";
    QFile data(recordFile);
        if (!data.open(QFile::WriteOnly | QFile::Append));
        QTextStream out(&data);
        out << "\n"<< nowDateTime.toString("yyyy-MM-dd hh:mm:ss") << "   " << clientName << QString::fromLocal8Bit("说道:") << "\n" << toOneMessage << "\n";
        data.close();
能够生成并且记录文件
[ 此帖被jaylittle在2009-02-25 14:19重新编辑 ]
快速回复
限100 字节
 
上一个 下一个