现在有一个日志文件,里面的信息是分行存储的,也就是说一行一个日志,
读取时候是分行读,
可是现在我需要对里面的特定行进行删除,文件中处理后最多保留10行数据,
开发中提供相应的接口,比如MoveFirst()就是移动到文件头,MoveLast()就是移动到文件尾,可是我在做MoveNext的时候,我却没有头绪,如果我要移动到下一行的时候,首先我 要确定当前文件对象的存在性(SHIT,这个我也不会,好像是验证一下),然后确定当前指针指的行的位置,然后将指针移动到下一行,并返回当前行的内容。
当然,也有格式化文件的功能,就是说有时候有些行是空行,需要删除,并向上移动下面的内容一行
我用了stdiofile的readstring功能,但只是读取没有操作具体行的功能,比如删除什么的,用Seek也是百思不得其解,因为Seek的第一个参数是移动多少字节,这个很难,我还一直在找有没有一定一行的,呵呵,可惜没有,
大家能不能根据我这里的情况给一些参考建议或者一些指导,谢谢
读取时候是分行读,
可是现在我需要对里面的特定行进行删除,文件中处理后最多保留10行数据,
开发中提供相应的接口,比如MoveFirst()就是移动到文件头,MoveLast()就是移动到文件尾,可是我在做MoveNext的时候,我却没有头绪,如果我要移动到下一行的时候,首先我 要确定当前文件对象的存在性(SHIT,这个我也不会,好像是验证一下),然后确定当前指针指的行的位置,然后将指针移动到下一行,并返回当前行的内容。
当然,也有格式化文件的功能,就是说有时候有些行是空行,需要删除,并向上移动下面的内容一行
我用了stdiofile的readstring功能,但只是读取没有操作具体行的功能,比如删除什么的,用Seek也是百思不得其解,因为Seek的第一个参数是移动多少字节,这个很难,我还一直在找有没有一定一行的,呵呵,可惜没有,
大家能不能根据我这里的情况给一些参考建议或者一些指导,谢谢
解决方案 »
- VC++ 车载稳像系统代码
- 进程间的字符串通信-SendMessage、WM_COPYDATA
- DLL 中使用GetMessageString,无法响应到消息
- 求助“系统找不到指定的路径。”
- 如何限制 CRichEditCtrl 中的文本长度 我用了LimitText 好像没有达到预期的效果
- vc连接错误
- 如何在程序中读取bmp格式的数据 呀?
- 关于vc++打印问题,如何打印某记事本中的文件如(c:\zhang\zhang.txt),使用什么命令?急
- 如何在单选的listbox中得到所选行的行号,或者说,如何将所选行的内容读出,并可以在修改后写回?
- 哪位大师知道屏幕取词的原理?
- 如何获得本地的html文件的title标签之间的文字?
- *****急!求LZIP算法的源代码,100分。有哪位能说说LZIP的特点也给分。
CStdioFile file;
if( !file.Open("c:\\1.txt", CFile::modeRead) )
{
AfxMessageBox("can not open file!");
return;
}
CString strLine;
while(file.ReadString(strLine))
{
strarray.Add(strLine);
}
file.Close();
CString str;
int nCount=strarray.GetSize();
for(int i=0; i<nCount; i++)
{
str = strarray[i];
if( str.Find("key") != -1)
{
strarray.RemoveAt(i);
nCount--;
i--;
}
}
if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
for(i=0; i<strarray.GetSize(); i++)
{
str = "";
str = strarray[i] + "\n";
file.WriteString(str);
}
file.Close();