資源簡(jiǎn)介
用qt 實(shí)現(xiàn)刪除文本文件中一行,deleteonelineinfile(int nNumLine, QString & filename);輸入文件名和刪除的行號(hào)可以刪除。行號(hào)是0到行數(shù)減一。

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
//如果是5行,nNum最大為4
void?DeleteOneline(int?nNum?QString?&strall)//
{
????int?nLine=0;
????int?Index=0;
????//算出行數(shù)nLine
????while(Index!=-1)
????{
????????Index=strall.indexOf(‘\n‘Index+1);
????????nLine++;
????}
????//如果是直接從位置0開(kāi)始刪除\n算一個(gè)字符“abc\nme\ndo“?\n的index是3要?jiǎng)h除3+1個(gè)字符,即index+1個(gè)
????if(nNum==0)
????{
????????int?nIndex=strall.indexOf(‘\n‘);
????????strall.remove(0nIndex+1);
????}
????else
????{
????????int?nTemp=nNum;
????????int?nIndex=0nIndex2=0;
????????while(nTemp--)
????????{
????????????//
????????????nIndex=strall.indexOf(‘\n‘nIndex+1);//這里會(huì)更新nIndex
????????????if(nIndex!=-1)//說(shuō)明是有效的
????????????{
????????????????nIndex2=strall.indexOf(‘\n‘nIndex+1);
????????????}
????????}
????????//刪除的行不是最后一行(從nIndex+1這個(gè)位置起nIndex2-nIndex個(gè)字符全部抹去)
????????if(nNum ????????{
????????????strall.remove(nIndex+1?nIndex2-nIndex);//不用減一
????????}
????????//刪除的是最后一行(從nIndex起始len-nIndex個(gè)字符全抹去)
????????//不能從nIndex+1處開(kāi)始,
????????else?if(nNum==nLine-1)
????????{
????????????int?len=strall.length();
????????????strall.remove(nIndexlen-nIndex);
????????}
????????else
????????{
????????}
????}
}
void?deleteOnelineInFile(int?nNumLine?QString?&filename)
{
????QString?strall;
????QFile?readfile(filename);
????if(readfile.open(QIODevice::ReadOnly))
????{
????????QTextStream?stream(&readfile);
????????strall=stream.readAll();
????}
????readfile.close();
????DeleteOneline(nNumLine?strall);
????QFile?writefile(filename);
????if(writefile.open(QIODevice::WriteOnly))
????{
????????QTextStream?wrtstream(&writefile);
????????wrtstream< ????}
????writefile.close();
}
int?main(int?argc?char?*argv[])
{
????QCoreApplication?a(argc?argv);
????//QFile?file(“c:\\delline.txt“);
????deleteOnelineInFile(3QString(“c:\\delline.txt“));
????return?a.exec();
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????????321??2012-06-05?14:40??DeleteOnelineInfile.pro
?????文件???????18905??2012-06-05?17:15??DeleteOnelineInfile.pro.user
?????文件????????6958??2012-06-05?14:42??Makefile
?????文件????????5546??2012-06-05?14:42??Makefile.Debug
?????文件????????5521??2012-06-05?14:42??Makefile.Release
?????目錄???????????0??2012-06-05?17:33??debug\
?????文件???????26112??2012-06-05?17:33??debug\DeleteOnelineInfile.exe
?????文件??????311188??2012-06-05?17:33??debug\DeleteOnelineInfile.ilk
?????文件?????????878??2012-06-05?17:33??debug\DeleteOnelineInfile.intermediate.manifest
?????文件??????617472??2012-06-05?17:33??debug\DeleteOnelineInfile.pdb
?????文件???????46095??2012-06-05?17:33??debug\main.obj
?????文件????????2105??2012-06-05?17:43??main.cpp
?????目錄???????????0??2012-06-05?17:45??release\
?????文件??????446464??2012-06-05?17:33??vc90.pdb
評(píng)論
共有 條評(píng)論