CArchive和Serialize即通过串行化文档的写入与读取

2024-01-21 21:38

本文主要是介绍CArchive和Serialize即通过串行化文档的写入与读取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CArchive和Serialize即通过串行化文档的写入与读取 
标签: 杂谈
之所以要这样通过串行化(CArchive和Serialize)的方式进行文件读去而不用CFile的方式进行文件的读取是因为串行化方式除了可以使用文件保存对象之外,还可以通过网络,串口,传输对象!!
例如这里使用打开键打开一个格式为txt的文件,并将文件内容显示在当前的View里面:
void CTextView::OnFileOpen()
{
 // TODO: Add your command handler code here
 
 CFileDialog mydlg(TRUE,"TXT");
 mydlg.DoModal();
 filename=mydlg.GetPathName();
 CFile myfile;
 myfile.Open(filename,CFile::modeRead); 
 CArchive ar(&myfile,CArchive::load); //定义一个文档类便于输出到视图
// SerializeRaw(ar);    //CEditView类里面的SerializeRaw方法,它只能实现txt文件的读取与储存
 //或者用Serialize(ar); 的方式进行处理如下:


CBmpTextDoc*pDoc=(CBmpTextDoc*)GetDocument();     //!!!!!进入文档类,以便使用里面的Serialize函数进行串行化读取操作


pDoc->Serialize(ar);//自动将文件里面的内容全部读取完!!!!!!!!!!!!!!!!!!!!!!!
如果要用文件读取的方式读取,那么应该这样
while(文件不到尾部)  其中不到文件尾部与EOF有关
{
 myfile。reading··········大概是这样子的,反正就是这个意思
}


CString strs;
strs=pDoc->str;    //str是本身pDoc里面自带就有的变量
CEdit& theEdit = GetEditCtrl();  //  CView是CEdit的派生,所以有它的功能
 
theEdit.SetSel(0,-1);  
 theEdit.ReplaceSel (strs);
 
pDoc->UpdateAllViews(NULL);
 
 ar.Close();
 myfile.Close();
pDoc->SetTitle(filename);
}
总结:首先CArchive ar(使用文件对话框打开的文件,CArchive::load); 
接着再pDoc->Serialize(ar);注意pDoc用GetDocument()的方式定义!···
即在pDoc里面就有“使用文件对话框打开的文件”里面的信息咯!```

这篇关于CArchive和Serialize即通过串行化文档的写入与读取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/630902

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

bcolz文档

原文:http://bcolz.blosc.org/en/latest/reference.html First level variables bcolz.__version__'''bcolz包的版本。''' bcolz.dask_here'''是否检测到dask的最低版本。''' bcolz.min_dask_version'''需要dask的最低版本(dask是可选

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

ROS1 + Realsense d455 固件安装+读取rostopic数据

目录 安装固件(一定要匹配)ROS1 wrapper 安装方法Realsense SDK 安装方法Realsense Firmware 安装方法 修改roslaunch配置文件,打开双目图像和IMU数据其他坑点参考链接 安装固件(一定要匹配) 如果你是使用ROS1获取realsense数据的话,一定要注意,SDK, Firmware的版本不是越新越好!!,这是因为intel已经不

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的