我的代码如下:
CString filename="c:\\1.txt";
CStdioFile file;
if( !file.Open(filename, CFile::modeCreate|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
CString m_strbody;
m_strbody="<%\n\
Const adOpenForwardOnly = 0\n\
Const adOpenKeyset = 1\n\
Const adSingle = 4\n\
Const adErrItemNotFound = &Hcc1\n\
Const adErrObjectInCollection = &Hd27\n\
Const adSchemaProcedureColumns = 29\n\
%>";
file.SeekToEnd();
file.WriteString(m_strbody);
file.Close();
问题是:每次写入都将原来的覆盖掉,而不是在原来的文本后面追加记录!
怎样修改上述代码才能在文本最后一行追加记录而不会影响以前的旧数据!
谢谢!
CString filename="c:\\1.txt";
CStdioFile file;
if( !file.Open(filename, CFile::modeCreate|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
CString m_strbody;
m_strbody="<%\n\
Const adOpenForwardOnly = 0\n\
Const adOpenKeyset = 1\n\
Const adSingle = 4\n\
Const adErrItemNotFound = &Hcc1\n\
Const adErrObjectInCollection = &Hd27\n\
Const adSchemaProcedureColumns = 29\n\
%>";
file.SeekToEnd();
file.WriteString(m_strbody);
file.Close();
问题是:每次写入都将原来的覆盖掉,而不是在原来的文本后面追加记录!
怎样修改上述代码才能在文本最后一行追加记录而不会影响以前的旧数据!
谢谢!
f.Open();
f.SeekToEnd();
f.Write();
f.Close();
==>
if(!file.Open(filename, CFile::modeWrite) )//文件不存在,打开失败
{//创建文件
if(!file.Open(filename, CFile::modeCreate|CFile::modeWrite) )
return FALSE;
}
FT,不会看MSDN吗?
CStdioFile file;
CString filename="1.txt";
if( !file.Open("C:\\1\\Debug\\1.txt", CFile::modeRead|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
file.SeekToEnd();
file.WriteString("eeef\n");
file.Close();
就改一个地方
CFile::modeRead
如果你不用CFile::modeCreate而只用像你自己改的CFile::modeRead|CFile::modeWrite那么就不用CFile::modeNoTruncate。拜托以后写程序多看点MSDN,少问一些弱智问题,这样不会有长进的。