求助!怎样避免自动保存到.CSV文件中的数据被覆盖!

cailinjun 2009-06-22 02:53:25
我将对话框显示的数据自动保存至.CSV文件中,但每运行一次程序,CSV文件中数据就被覆盖刷新为最新的,不能保留上一次保存的数据!
请教给位怎么解决这个问题啊!有没有遇上过!
...全文
474 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidHsing 2009-06-23
  • 打赏
  • 举报
回复
其实就是 C 语言中 FILE 的追加方式
Channels_net 2009-06-22
  • 打赏
  • 举报
回复
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CFile file;
CFileFind filefind;
if (!filefind.FindFile("C:\\a.txt"))
{
if ( file.Open("C:\\a.txt",CFile::modeCreate | CFile::modeReadWrite,NULL) )
{
file.Write(m_SaveData,m_SaveData.GetLength());
file.Close();
}
}
else
{
if ( file.Open("C:\\a.txt",CFile::modeReadWrite,NULL) )
{

file.SeekToEnd();
file.Write(m_SaveData,m_SaveData.GetLength());
file.Close();
}
}

贪玩的老鼠 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]
追加内容

C/C++ code
CStdioFile o_file1("sort.txt",CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);
o_file1.SeekToEnd();
o_file1.WriteString("a ");
o_file.Close();
[/Quote]

楼主正解
oyljerry 2009-06-22
  • 打赏
  • 举报
回复
追加内容

CStdioFile o_file1("sort.txt",CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);
o_file1.SeekToEnd();
o_file1.WriteString("a ");
o_file.Close();
zhu6789888 2009-06-22
  • 打赏
  • 举报
回复

保存完之后,在保存给标志位在文档中。下次保存的稍后,从标志位开始。


呵呵,感觉思路是这样的。没有研究过。说得不对,不要丢砖头哦。

cailinjun 2009-06-22
  • 打赏
  • 举报
回复
代码如下:


//保存显示数据
void CSCOMMDlg::OnButtonSavedata()
{

// TODO: Add your control notification handler code here
UpdateData(TRUE);

int nLength;
nLength = m_strCurPath.GetLength();

for( int nCount = 0; nCount < nLength; nCount++ )
{
if( m_strCurPath.GetAt( nCount ) == '\\' )
CreateDirectory( m_strCurPath.Left( nCount + 1 ), NULL );
}
CreateDirectory( m_strCurPath, NULL );

CStdioFile m_rFile;
LPCSTR lpszPath =m_strCurPath;// "c:\\comdata";
SetCurrentDirectory( lpszPath );


char buf[20];
for(int j=0;j<100;j++)
{
sprintf(buf,"Rec.csv",j);
if( (access( buf, 0 )) == -1 )
break;
}


CTime t = CTime::GetCurrentTime();
CString str=t.Format("%Y年%m月%d日%H时%M分%S秒\r\n");
// m_rFile.SeekToEnd();
m_rFile.Write((LPCTSTR)str,str.GetLength());
m_rFile.Write((LPCTSTR)m_ReceiveData,m_ReceiveData.GetLength());
//加一个换行符

m_rFile.WriteString(_T("\r\n"));

m_rFile.Flush();
m_rFile.Close();

SetTimer(2,5000,NULL); //在定时器中显示保存文件状态
m_ctrlSavePath.SetWindowText(str);

}
buyong 2009-06-22
  • 打赏
  • 举报
回复
怎么保存的?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧