Qt如何编写修改txt文件指定某行某位置的文本
答案:1 悬赏:40
解决时间 2021-01-04 07:41
- 提问者网友:心牵心
- 2021-01-04 03:41
Qt如何编写修改txt文件指定某行某位置的文本
最佳答案
- 二级知识专家网友:北方的南先生
- 2021-01-04 04:56
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QFile outfile("D:/11111111/test8/out.txt");//临时文件
if (!outfile.open(QIODevice::WriteOnly | QIODevice::Text))
return -1;
QFile datafile("D:/11111111/test8/file.txt");
if (!datafile.open(QFile::ReadOnly|QIODevice::Text))
{
qDebug()<<"open file failed";
return -2;
}
int row = 6;//需要更改的行
int count = 0;
QString str = "23";//需要更改的字符串
QString det = "789";//更改后的字符串
while (!datafile.atEnd())
{
QString line = datafile.readLine();
QListlist = line.remove('
').split("
");
QTextStream out(&outfile);
for(int i = 0;i < list.count();i++)
{
if(count != row - 1)//如果不是要更改的行则直接写到TXT文件
{
out<
";
}
}
if(count == row - 1)//如果是需要更改的行
{
for(int i = 0;i < list.count();i++)
{
if(list.at(i).contains(str))
{
list[i].replace(str,det);//直接替换
out<
";//
}
}
}
count++;
}
datafile.remove();
datafile.close();
outfile.rename("D:/11111111/test8/file.txt");
outfile.close();
return app.exec();
}更改之前的文件
,第六行是6623,我要改成66789:
大功告成
追问QString str = "23";//需要更改的字符串QString det = "789";//更改后的字符串
那这两个能否写成变量的形式?
#include
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QFile outfile("D:/11111111/test8/out.txt");//临时文件
if (!outfile.open(QIODevice::WriteOnly | QIODevice::Text))
return -1;
QFile datafile("D:/11111111/test8/file.txt");
if (!datafile.open(QFile::ReadOnly|QIODevice::Text))
{
qDebug()<<"open file failed";
return -2;
}
int row = 6;//需要更改的行
int count = 0;
QString str = "23";//需要更改的字符串
QString det = "789";//更改后的字符串
while (!datafile.atEnd())
{
QString line = datafile.readLine();
QList
').split("
");
QTextStream out(&outfile);
for(int i = 0;i < list.count();i++)
{
if(count != row - 1)//如果不是要更改的行则直接写到TXT文件
{
out<
}
}
if(count == row - 1)//如果是需要更改的行
{
for(int i = 0;i < list.count();i++)
{
if(list.at(i).contains(str))
{
list[i].replace(str,det);//直接替换
out<
}
}
}
count++;
}
datafile.remove();
datafile.close();
outfile.rename("D:/11111111/test8/file.txt");
outfile.close();
return app.exec();
}更改之前的文件
,第六行是6623,我要改成66789:
大功告成
追问QString str = "23";//需要更改的字符串QString det = "789";//更改后的字符串
那这两个能否写成变量的形式?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯