以下代码在写入文件内容的时候
没有问题,但是如果在替换的时候就会出现黑色的竖条,很多。这个是编码问题还是因为
数据转换的问题,是char和
QSTRING的问题么?还有qfile写入文件如果用QSTRING的话用什么方法,我看手册看的挺费劲的。。。。
- char *char_content;
- QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
- QString content,content_1,content_2,content_3,content_4,content_tmp,answer_content;
- int que_id;
- que_id=ui->verticalScrollBar->value();
- content="";
- QFile f_test("./data/test.tmp");
- QTextStream stream(&f_test);
- f_test.open(QIODevice::ReadWrite);
- content_1=QString::number(que_id);
- content_2=content_1+":";
- content_3=QString::number(answer_content);
- content_4=content_3+";";
- content_tmp = stream.readAll();
- if(content_tmp.contains(content_1))//有问题一行:看content_tmp中是否包含content_1的内容,是则将文件中重复内容替换
- {
- int answer_addr;
- answer_addr=content_tmp.indexOf(content_1,0);
- content_tmp.replace(answer_addr+2,1,content_3);
- char_content=content_tmp.toLatin1().data();
- char *tmp;
- tmp=content.toLatin1().data();
- f_test.write(tmp);
- }
- else if(!content_tmp.contains(content_1))//如果不是的话就就直接写入文件。
- { content=content_2+content_4;
- char_content=content.toLatin1().data();
- }
- f_test.write(char_content);
- f_test.close();
[ 此帖被wter27在2011-01-24 23:21重新编辑 ]