MFC怎么实现对TXT像word那样的保存和修改

就是可以单独出现窗口进行保存和打开操作... 就是可以单独出现窗口进行保存和打开操作 展开
 我来答
志远823
2011-02-24 · TA获得超过2296个赞
知道小有建树答主
回答量:913
采纳率:66%
帮助的人:1179万
展开全部
对于新手有两个方案给你
1. 利用MFC的序列化机制(但存在升级后二进制不兼容的风险)
参考
http://www.cppblog.com/mzty/archive/2006/08/08/10960.html

2. 使用MFC提供的文件编写机制来读写文件(推荐).
读写文件例子如下
可用CStdioFile,如:(其中WriteString为写入一行,ReadString为读取一行文本)

CStdioFile dataStore;

if (file)
{
CString somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符

BOOL bIsOk = dataStore.Open(strPath+"\\"+Filename,
CFile::modeCreate
| CFile::modeWrite
| CFile::shareDenyWrite
| CFile::typeText);

if (!bIsOk)
return FALSE;

// 读写网页文件,直到为空
while (file->ReadString(somecode) != NULL) //如果采用LPTSTR类型,读取最大个数nMax置0,使它遇空字符时结束
{
dataStore.WriteString(somecode);
dataStore.WriteString("\n"); //如果somecode采用LPTSTR类型,可不用此句
}
}
// ReadString读文件, WriteString写文件, CFile::modeNoTruncate追加一行的打开方式

CStdioFile dataStore;
CString somecode;

BOOL bIsOk = dataStore.Open( rxFile,
CFile::modeRead
| CFile::shareDenyWrite
| CFile::typeText);
if (!bIsOk)
return;

BOOL bIsExist = FALSE;
// 逐行读文本文件
while (dataStore.ReadString(somecode) != NULL)
{
//AfxMessageBox(somecode);
if (somecode.CompareNoCase(g_ARXPrfMgrName) == 0)
{
bIsExist = TRUE;
break;
}
}
dataStore.Close(); // 关闭文件

if (bIsExist != TRUE)
{
bIsOk = dataStore.Open( rxFile,CFile::modeCreate|CFile::modeNoTruncate // Append 一行的方法
|CFile::modeReadWrite
| CFile::shareDenyWrite
| CFile::typeText);
if (!bIsOk)
return;
dataStore.SeekToEnd();
dataStore.WriteString("\n");
dataStore.WriteString(g_ARXPrfMgrName);
dataStore.WriteString("\n");
dataStore.Close(); // 关闭文件
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式