广西庞文达 正厅:行编辑程序,请各位大哥大姐帮忙用C++编一下,谢谢

来源:百度文库 编辑:神马品牌网 时间:2024/03/29 17:57:13
行编辑程序
对文本文件按行进行编辑:先从输入文件中读数据,然后根据行编辑命令处理,将结果写到输出文件中。
行编辑命令包括:
*L m, n
功能:显示第m至n行的文本
*I m
……
……
∧Z
功能:插入文本(……)在第m行后
*D m, n
功能:删除第m至n行的文本
*R m, n
……
……
∧Z
功能:将文本(……)替换第m行至n行的文本
*X
功能:保存并退出编辑程序。
*Q
功能:放弃并退出程序。

你新建一个VC的SDI工程,Form的View采用CEditView,只要在菜单的打开和关闭函数上加上文件读、CEdit类指针的获取,和文件写的功能,就完成了,只要10分钟。由于大部分是向导完成的,贴代码没有意义,文件读写代码如下:
//in CMainFrm.h
CString s_Buf;
CEdit* pEdit;

//in CMainFrm.cpp/OnCreate()函数
pEdit=m_EditView.GetEdit();

//in CMainFrm.cpp/OnOpen()函数
CFile fl;
char* pBuf[101];
if(fl.Open("文件名",CFile::modeRead))
{
while(fl.Read(pBuf,100)==100)
{
s_Buf=sBuf+pBuf
}
s_Buf=sBuf+pBuf;
m_pEdit->SetWindowText(s_Buf);
}

//in CMainFrm.cpp/OnSave()函数
CFile fl;
int n=s_Buf.GetLength();
if(fl.Open("文件名",CFile::modeWrite))
{
fl.WriteHuge(s_Buf.GetBuffer(n+1),n);
s_Buf.ReleaseBuffer();
}
就搞定全部问题了

如果用纯C++一行行的写,太复杂了。不值得。