1个回答
展开全部
对于新手有两个方案给你
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(); // 关闭文件
}
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(); // 关闭文件
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询