首页 > 其他分享 >MFC 文件 File 序列化和反序列化

MFC 文件 File 序列化和反序列化

时间:2024-01-27 14:55:05浏览次数:34  
标签:CFile 文件 MFC ch ar File 序列化 buf

//写文件
void CMainFrame::OnCarchiveWrite()
{
	// TODO:  在此添加命令处理程序代码

	/*
		a) 创建文件对象 CFile
		b) 以写方式打开文件 CFile::Open
		c) 创建序列化对象,并且和文件关联在一起 CArchive
		CArchive::store 把数据保存到归档文件中。允许CFile写操作。
		d) 往数据流写数据(相当于往文件写数据)
		ar << a << b << c
		e) 断开数据流和文件的关联 CArchive::Close
		f) 关闭文件 CFile::Close
	*/

	CFile file;
	BOOL isOk = file.Open(TEXT("../demo.txt"), CFile::modeCreate | CFile::modeWrite);
	if (isOk == FALSE)
	{
		return;
	}

	//和CArchive管理
	//CArchive对象是数据流,文件和CArchive绑定一起,
	//store: 存储,写
	CArchive ar(&file, CArchive::store);

	//和cout用法一样
	int a = 10;
	CString str = TEXT("ABC");
	TCHAR ch = 't';

	//箭头代表流向
	//数据流向ar, ar指向文件
	ar << a << str << ch;

	ar.Close(); //断开数据流和文件的关联
	file.Close();
}

//读文件
void CMainFrame::OnCarchiveRead()
{
	// TODO:  在此添加命令处理程序代码

	CFile file;
	BOOL isOk = file.Open(TEXT("../demo.txt"), CFile::modeRead);
	if (isOk == FALSE)
	{
		return;
	}

	//和CArchive管理
	//CArchive对象是数据流,文件和CArchive绑定一起,
	//load: 加载,读
	CArchive ar(&file, CArchive::load);

	//和cout用法一样
	int a;
	CString str;
	TCHAR ch;

	//箭头代表流向
	// ar指向文件, 数据流 -> 变量
	ar >> a >> str >> ch;

	CString buf;
	buf.Format(TEXT("%d, %s, %c"), a, str, ch);
	MessageBox(buf);

	ar.Close(); //断开数据流和文件的关联
	file.Close();
}




参考:
https://www.bilibili.com/video/BV1jb411M78M?p=76

标签:CFile,文件,MFC,ch,ar,File,序列化,buf
From: https://www.cnblogs.com/huvjie/p/17991421

相关文章

  • MFC Tab 标签控件
    ▲提升类▲两个dlg类,把边框去掉,把样式改成Child主Dlg头文件三个成员变量:private: CTabSheetm_tabCtrl; MyDlg1dlg1; MyDlg2dlg2;BOOLCMy02_TabCtrlDlg::OnInitDialog()中: //给tab控件添加对话框 //对话框设置为子对话框,默认是单独对话框 m_tabCtrl.AddPa......
  • MFC TreeView 控件的基本认识
    ▲树控件OnInitDialog()里面的一些基础操作。BOOLCMFCApplication1Dlg::OnInitDialog(){CDialogEx::OnInitDialog();//将“关于...”菜单项添加到系统菜单中。//IDM_ABOUTBOX必须在系统命令范围内。ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTB......
  • [perl]: file -- read_file.pl
    [perl]: file--read_file.pl    一、代码1#!/usr/bin/envperl234#file_name:read_file.pl567subread_file8{9open(DATA,"$_[0]")ordie"[db.pl]:thatfiledosenotexist,$!";101112......
  • windowForm程序的webView2错误 System.IO.FileNotFoundException: 系统找不到指定的文
    最近开发公司的一个项目,要求打包在windows中执行的exe可执行文件开始我想到的是使用windowsForm里面webView嵌套网页执行,vs自带提供的WebBrowser的内核是ie7的,兼容性确实不好,后面使用Microsoft.Web.WebView2(通过NuGet安装)兼容性问题解决了。在我的电脑上可以完整的运行,但是在同......
  • `pandas.ExcelFile.parse` 和 `pandas.read_excel` 都是 pandas 库中用于从 Excel 文
    `pandas.ExcelFile.parse`和`pandas.read_excel`都是pandas库中用于从Excel文件读取数据并创建DataFrame的方法¹。这两个方法的主要区别在于它们的使用场景和语法。-`pandas.read_excel`是一个函数,它可以直接读取Excel文件并返回一个DataFrame¹。这个函数非常适合......
  • `pandas.ExcelFile.book` 是一个属性,它存储了底层 Excel 读取库(如 xlrd 或 openpyxl)创
    有点像excelwriter?`pandas.ExcelFile.book`是一个属性,它存储了底层Excel读取库(如xlrd或openpyxl)创建的workbook对象¹。你可以通过这个属性来访问Excel文件的更多详细信息,比如工作表的名字、单元格的格式等等。下面是一个如何使用`pandas.ExcelFile.book`的例子³:``......
  • MFC 模态对话框
    Frame消息:BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)ON_WM_CREATE()ON_COMMAND(ID_DIALOG_EXEC,&CMainFrame::OnDialogExec)ON_COMMAND(ID_DIALOG_SHOW,&CMainFrame::OnDialogShow)ON_COMMAND(ID_DIALOG_32773,&CMainFrame::OnDialog3277......
  • SpringBoot启动项目报错:java.lang.UnsatisfiedLinkError: D:\files\software\jdk-1
    目录问题描述解决方法:问题描述在运行向的时候出现报错:java.lang.UnsatisfiedLinkError:D:\files\software\jdk-15.0.1\jdk-17.0.3.1\bin\tcnative-1.dll:Can'tloadIA32-bit.dllonaAMD64-bitplatform atjava.base/jdk.internal.loader.NativeLibraries.load(Native......
  • MFC 右击菜单 右键菜单
    点击鼠标左键会出现弹式菜单:▲弹出菜单//鼠标左键按下voidCMy05_MenuView::OnLButtonDown(UINTnFlags,CPointpoint){//获取主菜单//CMenu*menu=GetMenu();//这个会直接报错//创建菜单项需要新创建一个,不能再视图直接获取框架的那个菜单CM......
  • MFC 根据定时器 ICON 移动 定时器的应用
    ▲会从做向右跑动构造函数:voidCMFCApplication1View::OnDraw(CDC*pDC){CMFCApplication1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(!pDoc)return;//绘制代码pDC->DrawIcon(x1,y1,icon[0]);pDC->DrawIcon(x2,y2+50,......