保存文件的三种方法

方法一:

1.  在文件开头添加引用文件

      #include <fstream>
      using namespace std;

2.  在保存消息函数内添加如下代码:     

void CConfigure::OnBnClickedBtnSave()
{
	// TODO: Add your control notification handler code here
	
	CString str;
	// 创建另存对话框
	CFileDialog saveDlg(FALSE,".txt",
		                NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
						"文本文件(*.txt)|*.txt|""文档文件(*.doc)|*.doc|""表格文件(*.xls)|*.xls|""All Files(*.*)|*.*||");
	
	saveDlg.m_ofn.lpstrInitialDir = "c:\\";		// 另存对话框默认路径为c盘


	// 进行保存动作
	if (saveDlg.DoModal() == IDOK)
	{
		ofstream ofs(saveDlg.GetPathName());
		CStatic * pst = (CStatic*)GetDlgItem(IDC_EDIT_FILE);	// 获取要保存编辑框控件内的数据
																// IDC_EDIT_FILE是编辑框控件句柄
		pst->GetWindowTextA(str);
		ofs << str;
	}
}
       保存多种类型的文件,保存对话框的设置,可参考此例。


方法二:

        在save消息函数中添加如下代码:

CFileDialog tDlg(false,"txt",NULL,0,"Excel文件(*.txt)|*.txt||");

	if (tDlg.DoModal()==IDOK)
	{
		CString nFilename;
		nFilename=tDlg.GetPathName();
		CFile nFile(nFilename, CFile::modeCreate|CFile::modeReadWrite);
		CStatic*pst=(CStatic*)GetDlgItem(IDC_EDIT_PELTIER1);

		CString str;
		pst->GetWindowText(str);

		CArchive save(&nFile, CArchive::store|CArchive::bNoFlushOnDelete);
		save<<str;

		save.Close();
	}

       用此方法保存的文件,总会在文件开头添加一字符,方法一则不会。

 

方法三:

// 创建另存对话框
	CFileDialog saveDlg(FALSE,".txt",
		NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
		"文本文件(*.txt)|*.txt|""文档文件(*.doc)|*.doc|""表格文件(*.xls)|*.xls|""All Files(*.*)|*.*||",
		NULL,0,TRUE);

	//	saveDlg.m_ofn.lpstrInitialDir = "c:\\";		// 另存对话框默认路径为c盘

	// 进行保存动作
	if (saveDlg.DoModal() == IDOK)
	{
		CFile nFile(saveDlg.GetPathName(),CFile::modeCreate | CFile::modeReadWrite);   // 创建文件,用选取的文件名
		nFile.Write(sStatus,sStatus.GetLength());		// 将要保存的数据写入文件 (CString sStatus为要写入的内容)
		nFile.Close();		// 完成文件写入
	}


 

 

      方法一缺点,在连续更新字符添加"\r\n"后,以excel格式保存,会多出一个回车键,而以txt格式保存则不会。

      方法二缺点,在文件开头会多出乱码。

      方法三最好。

 

       CFile使用参考:

       http://blog.youkuaiyun.com/phenixyf/article/details/42915591

       改变保存对话框样式,参考下面网址:

       http://msdn.microsoft.com/zh-cn/library/43xtah3y

       CFileDialog 的定义,参考下面网址:

       http://msdn.microsoft.com/zh-cn/library/dk77e5e7

       http://msdn.microsoft.com/zh-cn/library/wh5hz49d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值