QTextStream writeStream(&writeFile);
//查找每一行是否包含section
while (!readStream.atEnd())
{
QString line(readStream.readLine());
if (line.indexOf(strSection) != 0)//该行不包含section,直接写入流
{
writeStream<<line<<"/n";
}
else
{
flagFindSection = true;//查到section
ret = true;
//key是null,则跳过该section,写入其余section
if (strKeyName == NULL)
{
do //跳过该section
{
line = QString(readStream.readLine());
} while (line.indexOf("[") != 0 && !readStream.atEnd());
if(readStream.atEnd())
{
break;
}
else//写入其余section
{
writeStream<<line<<"/n";
while(!readStream.atEnd())
{
writeStream<<readStream.readLine()<<"/n";
}
break;
}
}
writeStream<<line<<"/n";//section写入流
line = QString(readStream.readLine());
while(line.indexOf(strKey) != 0 && line.indexOf("[") != 0 && !readStream.atEnd())
{
writeStream<<line<<"/n";
line = QString(readStream.readLine());
}
if(readStream.atEnd())//文件末尾,若value!=null则直接加上key
{
//直接加上
if(strValue != NULL)
{
writeStream<<strKey<<strValue<<"/n";
}
}
else if(line.indexOf("[") == 0)//查到下一个section,若value!=null则在下一个section前直接加上key
{
if(strValue != NULL)
{
writeStream<<strKey<<strValue<<"/n";
}
writeStream<<line<<"/n";
while(!readStream.atEnd())//剩余行写入流中
{
writeStream<<readStream.readLine()<<"/n";
}
break;
}
else if(line.indexOf(strKeyName) == 0)//查到key,若value!=null则修改value
{
if(strValue != NULL)
{
line = line.mid(0, line.indexOf("=") + 1) + strValue;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27851-2.html
很多大官有把柄给捏着的
不过比较灵活