MFC二进制文件读取
1、mfc Document-vew doc类中读取
doc类中读取,在Vew类中可直接使用。
在菜单栏NewFile/OpenFile 后,系统自动调用Serialize()函数
if :写入文件
else:读取文件
eg:读取二进制文件(结构体数据)
// ChlDoc 序列化 void ChlDoc::Serialize(CArchive& ar)
{
TRACE(TEXT("DOC"));
if (ar.IsStoring())
{
// TODO: 在此添加存储代码
}
else
{ // TODO: 在此添加加载代码
int dataSize = sizeof(StockDay);//结构体长度
CFile* fp = ar.GetFile();
int fLenght = fp->GetLength();//文件长度
int num = fLenght/dataSize;//列表长度
for(int i = 0; i<num; ++i)
{
StockDay sd;
ar>>sd.m_lDate;
ar>>sd.m_lOpenPrice;
ar>>sd.m_lMaxPrice;
ar>>sd.m_lMinPrice;
ar>>sd.m_lClosePrice;
ar>>sd.m_lMoney;
ar>>sd.m_lTotal;
ar>>sd.def1;
ar>>sd.def2;
ar>>sd.def3;
m_vecStockDay.push_back(sd);
}
}
}
vector <StockDay> m_vecStockDay;//类成员变量
//vector标准库引用
#include<vector>
using namespace std;
//结构体类型
struct StockDay
{
unsigned long m_lDate; /*year-month-day ,example: 19960616
分钟数据的表示方法如下:yymmddhhnn(年月日时分)
yy指的是year - 1990,故年份表达范围:1990 - 2011
如0905131045,指的是:1999年5月13号10点45分。*/
long m_lOpenPrice; //开
long m_lMaxPrice; //高
long m_lMinPrice; //低
long m_lClosePrice; //收
long m_lMoney; //成交金额
unsigned long m_lTotal; //成交量 单位:百股(手)
long def1;
long def2;
long def3;
};
二、直接使用CFile读取(常用)
直接读取,可使用 CFileDialog 选择读取文件路径
//结构体、m_vecStockDay 见方法一
//CString strPathName:读取文件的路径
CFile file;
if (file.Open( strPathName, CFile::modeRead, NULL ))
{
int dataSize = sizeof(StockDay); //结构体长度
int fLenght = file.GetLength(); //文件长度
int num = fLenght/dataSize; //列表长度
m_vecStockDay.resize(num); //为vector重新分配空间,具体理解见: http://www.cplusplus.com/reference/vector/vector/resize file.Read(m_vecStockDay.data(), fLenght);//vector.data()返回一个指针,该指针指向矢量内部用于存储元素的内存数组。
file.Close(); }
三、使用CFile打开文件,再使用CArchive序列化读取
//strPathName 文件路径
if (file.Open( strPathName, CFile::modeRead, NULL ))
{
int dataSize = sizeof(StockDay);//结构体长度
int fLenght = file.GetLength();//文件长度
int num = fLenght/dataSize;//列表长度 CArchive ar(&file, CArchive::load);//
int dataSize = sizeof(StockDay);//结构体长度
int fLenght = file.GetLength();//文件长度
int num = fLenght/dataSize;//列表长度
for(int i = 0; i<num; ++i)
{
StockDay sd;
ar>>sd.m_lDate;
ar>>sd.m_lOpenPrice;
ar>>sd.m_lMaxPrice;
ar>>sd.m_lMinPrice;
ar>>sd.m_lClosePrice;
ar>>sd.m_lMoney;
ar>>sd.m_lTotal;
ar>>sd.def1;
ar>>sd.def2;
ar>>sd.def3;
m_vecStockDay.push_back(sd);
}
}
ar.Close();
file.Close();
}
MFC二进制文件读取的更多相关文章
- MFC如何读取XML
<?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...
- Snort里如何将一个tcpdump格式的二进制文件读取打印到屏幕上(图文详解)
不多说,直接上干货! 关于tcpdump二进制格式,这个基本概念不说. 支持tcpdump二进制格式的嗅探器工具,这里我说两个:tcpdump或者ethereal. [root@datatest Se ...
- tensorflow二进制文件读取与tfrecords文件读取
1.知识点 """ TFRecords介绍: TFRecords是Tensorflow设计的一种内置文件格式,是一种二进制文件,它能更好的利用内存, 更方便复制和移动,为 ...
- MFC webbrowser读取文档的meta分析
IDispatch* pDisp = NULL; IDispatch* pDisp2 = NULL; IHTMLDocument2 *pHtmlDoc2 = NULL; IHTMLElementCol ...
- cocos2d-x 二进制文件的读写
转自:http://blog.csdn.net/wolfking_2009/article/details/10616069 cocos2d-x里面的二进制文件读取的方法是有的,作者对方法封装了下,将 ...
- 【转】C++读写二进制文件
原文网址:http://blog.csdn.net/lightlater/article/details/6364931 摘要: 使用C++读写二进制文件,在开发中操作的比较频繁,今天有幸找到一篇文章 ...
- [Matlab+C/C++] 读写二进制文件
introduction 因为Matlab操作简单.方便,它被应用于很多领域:音频处理,图像处理,数值计算等.尽管MATLAB容易操作,但受限于他的语言解释机制,MATLAB的执行速度通常较低.C/C ...
- js 读取文件
读取文本文件 读取文本文件: <input type="file" id="file1" accept="*" /> </ ...
- 『TensorFlow』从磁盘读取数据
十图详解TensorFlow数据读取机制 一.输入流水线读取数据流程 1). 创建文件名列表 相关函数:tf.train.match_filenames_once 2). 创建文件名队列 相关函数:t ...
随机推荐
- 机器学习 第5篇:knn回归
基于最邻近算法的分类,本质上是对离散的数据标签进行预测,实际上,最邻近算法也可以用于对连续的数据标签进行预测,这种方法叫做基于最邻近数据的回归,预测的值(即数据的标签)是连续值,通过计算数据点最临近数 ...
- 循序渐进VUE+Element 前端应用开发(25)--- 各种界面组件的使用(1)
在我们使用Vue+Element开发前端的时候,往往涉及到很多界面组件的使用,其中很多直接采用Element官方的案例即可,有些则是在这个基础上封装更好利用.更少代码的组件:另外有些则是直接采用第三方 ...
- Ethernaut靶场练习(0-5)
1.Hello Ethernaut 目标: 安装好metamask,熟悉操作命令. 操作过程: 我们先提交一个实例,然后打开游览器F12.然后跟他的提示走. 先输入contract.info(). c ...
- OJ-1:时钟问题【九度1553】
题目描述: 如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角). 输入: 输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成. 输出: 对于每组测试数据,输出一个浮点数,代表时针 ...
- 知识补充之Django信号量
信号 抛砖引玉 1.如何对数据库的增加操作记录日志 2.信号比中间件的区别 Django中提供了"信号调度",用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特 ...
- Pytest学习(六) - conftest.py结合接口自动化的举例使用
一.conftest.py作用 可以理解成存放fixture的配置文件 二.conftest.py配置fixture注意事项 pytest会默认读取conftest.py里面的所有fixture co ...
- layui系列学习第一天
新开一个博客系列 记录下layui学习过程及感受 今天受到很大的打击 ...希望 自己能坚持做好 到1.12号可以完成这个博客 一.基础说明 layui css 命名规范:1.layui-模块名- ...
- C++ 设计模式 4:行为型模式
0 行为型模式 类或对象怎样交互以及怎样分配职责,这些设计模式特别关注对象之间的通信. 1 模板模式 模板模式(Template Pattern)定义:一个抽象类公开定义了执行它的方法的方式/模板.它 ...
- cmd的基本命令
使用方法Windows键+R键输入cmd回车 Windows 系统常用小工具 工具名称 cmd 命令 含义 计算器 calc 与 "工具名称" 相同 记事本 notepad 与 & ...
- 关于 node build/build.js 卡顿的问题
今天也是奇了怪了,npm run dev 可以正常执行,但node build/build.js 就死活不行,卡住不动 实在不行,就有了"重启"万能大法,结果依然不行.实在无奈, ...