基于MFC的大型数据文件处理方法

MFC图像处理 对比加深使用了积分的思想,先统计当前图像像素点的分布以及数量情况并用一个 256的数组记录 0 ~ 255灰度值的像素点个数,再用当前的灰度值的像素点数量除以整张图片像素点数量得到该像素点在整张图片分布的概率,而每当灰度级数加一,该灰度级数的概率还应该加上之前灰度级数概率,这样可以保证随着灰度等级原来越高,像素点的值也会原来越高。均值滤波就是将该像素点的直接领域像素点的灰度值以及当前像素点的灰度值求和,所得结果除以9得到9个像素点的均值。减少图片暗淡部分的对比度,增加图片明亮部分的对比度; 阅读详情

      在Visual C++中,MFC(微软基础类库)提供了CFile和CStdioFile两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStdioFile提供了基于字符串流的文件操作,功能类似于C语言中的fgets()和fputs()函数。但是,使用这两个类进行文件操作时
,对于一次文件读写的数据量的大小必须限制在65535字节以内。其原因是在VC中访问大于65535字节的缓冲区需要Huge型指针,而在CFile和CStdioFile类中,使用的是Far型的指针。由于Far型指针不具有跨段寻址的能力,因此限制了一次文件读写的长度小于65535字节。如果传递给CFile和CStdioFile两个类的成员函数的数据缓冲区的大小大于65535字节的时候,VC就会产生ASSERT错误。
      笔者在使用Visual C++进行多媒体程序设计的时候,由于程序处理的数据量非常大,所以需要频繁地读写大于65535字节的数据。在使用CFile和CStdioFile类处理巨型数据的时候一般是分段读写,笔者感到这样的处理方法非常地繁琐,同时容易导致程序编制错误。笔者在查阅了相关的文献以后,找到了使用Visual C++直接读写巨型数据的方法。
      在MFC的CFile类中提供了两个未载入文档的函数,其原型声明在
AFX.H中。函数原型如下:
DWORD CFile::ReadHuge(void FAR *lpBuffer,DWORD dwCount);
void CFile::WriteHuge(const void FAR*lpBuffer,DWORD dwCount);
      在这两个函数内部使用的都是Huge型指针来对传递的缓冲区进行寻址,因此可以读写大于65535字节的巨型数据。对于ReadHuge()和WriteHuge()函数需要的巨型缓冲区可以使用Windows的API函数GobalAlloc()来创建。
     作为一个例子,下面的程序段演示了通过使用ReadHuge()和WriteHuge()函数使用一次读写复制一个大型文件的过程。

{ CString Namel(”data1.dat”);
         CString Name2(”data2.dat”);
         CFile MyFilel(Namel,CFile::modeRead);
         CFile MyFile2(Name2,CFile::modeCreate|CFile::mode
         Write);
         DWORD Length=MyFile1.GetLength();
         void far*p=GlobalAlloc(0,Length);
         if(p=NULL)
             {
                  AfxMessageBox(”Alloc memory error!”);
              }
         MyFile1.ReadHuge(p,Length);
         MyFile2.ReadHuge(p,Length);
         MyFile1.Close();
         MyFile2.Close();
         AfxMessageBox(”File Copy Succeed!”);
}

(作者:成都 卢军)

MFC文件操作大全 NULL 博文链接:https://guoduhua.iteye.com/blog/1847799 立即下载

相关推荐

MFC读取资源中的文本及二进制内容 文件打包进exe文件

把文件资源打包进MFC的exe文件中,运行时进行加载,然后读取文件中的文本内容或者二进制内容 内含应用例程:1.把一个对象存为二进制文件,加载文件后恢复原对象 2.生成文本,加载资源中的文本文件,获取文本中的字符串

ssh-keygen 与 openssl 密钥对验证:3种方法快速匹配公钥私钥

本文详细介绍了使用`ssh-keygen`和`openssl`工具快速验证SSH密钥对匹配性的三种实用方法,包括从私钥提取公钥比对、加密/解密验证和数字签名验证。通过对比两种工具的功能差异和实战案例,帮助开发运维人员高效管理密钥对,确保系统安全。

circularr9834的博客 512

深入解析AMBA5 AXI与ACE协议:从基础到高级应用

本文深入解析了AMBA5 AXI与ACE协议的核心机制与应用。AXI协议通过分离通道、突发传输和乱序完成实现高性能数据传输,而ACE协议在此基础上构建了硬件级缓存一致性解决方案,通过监听机制和状态模型确保多核系统数据统一。文章还探讨了在异构计算等复杂场景下的实战应用与AMBA5的新特性。

cc789的博客 961

基于MFC的大型数据文件处理方法(转贴)

 基于MFC的大型数据文件处理方法(转贴)   基于MFC的大型数据文件处理方法在Visual C++中,MFC(微软基础类库)提供了CFile和CStdioFile两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStdioFile提供了基

zhaozhanyong的专栏 684

STK中的传感器、雷达、发射机、接收机、天线

本文根据STK手册介绍了传感器、雷达、发射机、接收机、天线等对象的基本属性,简略分析了它们的不同之处。

wangyulj的专栏 1万+

方差分解分析变量筛选与显著性计算

冗余分析(redundancy analysis,RDA)是一种回归分析结合主成分分析的排序方法,也是多响应变量(multiresponse)回归分析的拓展。在进行VPA时,首先就要对这些环境因子进行一个分类,然后在约束其它类环境因子的情况下,对某一类环境因子进行排序分析,这种分析也成为偏分析,即partialRDA。在地球环境科学的实际应用中,可以基于VPA结果得出不同类型的环境因素(如何气候、土壤性质以及植物)对生物群落组成(如植被丰度,微生物群落)的解释程度。对于由或创建的排序对象,函数。

wlh2067的博客 2520

基于MFC的大型数据文件处理方法 (转)

基于MFC的大型数据文件处理方法 (转)[@more@]在Visual C++中,MFC(微软基础类库)提供了CFile和CStdioFile两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能...

csd3176的博客 81

携程酒店数据爬取进阶:动态接口破解与反反爬策略实战

本文详细解析了携程酒店数据爬取的进阶技巧,包括动态接口参数破解、反爬虫策略对抗及企业级采集方案实现。重点介绍了eleven参数的生成逻辑、动态Cookie维护方法,以及如何应对携程的请求指纹检测和行为模式识别。通过实战案例,帮助开发者高效获取酒店价格数据,同时遵守行业规范。

eee77的博客 1078

Python实战:基于NumPy与Pandas的灰色关联分析全流程实现

在多因素数据分析中,如何量化不同因素对核心指标的影响程度是一个常见挑战。灰色关联分析作为一种处理“小样本、贫信息”不确定性系统的数学方法,其核心原理是通过计算序列间几何形状的相似度来度量关联性,不要求数据服从特定分布,对样本量需求小,因而在工程实践和科研中具有很高的应用价值。该方法特别适用于市场分析、工艺优化和风险评估等场景,能够从众多因素中快速筛选出关键影响因子。本文以Python的NumPy和Pandas库为核心工具,详细拆解了灰色关联分析的六步建模流程,并重点探讨了**数据无量纲化**处理与**分辨系

ciya3282的博客 411

烧录代码显示:no st-link 和Targrt DLL has been cancelled,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1579

置顶必读(1) | 滚雪球学Oracle教程导航帖,带你弯道超车(持续更新中)

什么是数据库管理系统(DBMS),Oracle在行业中的领先地位Oracle数据库的市场竞争与主要应用场景Oracle数据库的核心功能模块与未来技术发展趋势约束的高级应用:主键、唯一性、外键设计与管理表分区、视图、同义词与序列的最佳实践PL/SQL编程的设计哲学,如何高效使用Oracle SQL DeveloperPL/SQL代码调试与优化技巧RAC集群中的高可用性设计,负载均衡与并行查询的配置集群中的缓存一致性管理。

**My Coding Family** 1万+

PC Camera开发日志(十五)---- 基于MFC的大型数据文件处理方法

********* 虽然我用的VS2005中已经不使用这个函数了,但是看到过别人的MFC使用过此函数,特转帖在此 ******基于MFC的大型数据文件处理方法在Visual C++中,MFC(微软基础类库)提供了CFile和CStdio File两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStd

waterathena的专栏 857

【ComfyUI】Z-Image 基础文生图 + 单LoRA

本文介绍了一个基于ComfyUI的Z-Image Turbo基础文生图工作流,采用轻量化UNet模型配合Qwen Image文本理解模型与LoRA风格注入,实现从文本到图像的快速生成。工作流结构清晰,包含模型加载、文本编码、采样解码等标准节点,在人物生成、构图稳定性和出图速度方面表现均衡。通过调整Prompt可控制生成内容,适合日常创作、教学演示及扩展进阶应用。

Mr数据杨 926

【MFC】MFC异常类——异常处理

01、目录 目录01、目录02、异常机制03、MFC异常宏04、MFC异常类05、MFC异常处理06、MFC异常处理实例07、小结 02、异常机制 我们开发的软件一般按照正常的流程操作时运行不会出问题,但是用户不一定会根据软件工程师的想法来操作软件,而且往往随机性很大,另外,软件的运行环境也会改变,例如硬盘空间不足、文件被移走,这些都可能会导致软件出现异常,甚至崩溃。所以我们进行软件开发时要充分考虑异常的捕捉和处理。 C++异常处理思想如下: 进行异常处理的目标是,使软件具有容错能力,在出现运行环境或者

Cain Xcy的博客 4543

C#与数据采集卡集成开发全指南:从硬件连接到实时数据处理(附工业传感器监测实战)

C#数据采集卡集成开发指南 本文系统介绍了不同类型数据采集卡(DAQ卡)与C#的集成方法。主要内容包括: 数据采集卡分类:按接口分为PCIe/PCI(高带宽低延迟)、USB(便携即插即用)和以太网(远距离组网);按信号类型分为模拟量输入、数字量输入/输出等。 C#集成核心方法: 优先使用厂商SDK(如NI DAQmx),提供完整功能封装 无SDK时采用通用协议(如USB HID、Modbus TCP) 具体实现示例: NI DAQmx采集热电偶温度代码 USB HID协议读取模拟量电压值 工业应用要点:实时

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1972

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 将图象列表转换成设备无关位图
下一篇: 如何用VC++和Visual Foxpro进行ActiveX数据通讯
cnviolet
博客等级 码龄26年 10粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值