说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB使用WriteFile 块读写数据

HTML文档下载 WORD文档下载 PDF文档下载
VB使用WriteFile 块读写数据
概述
Win32 API 提供了OpenFile 和 WriteFile 函数, 可以对二进制的文件进行读/写。 这两个函数使读/写格式化的文件更加灵活。 这里演示了操作大量格式化数组的一种技巧, 一次完成, 无须一个一个地操作。

实现步骤
1 打开一个新的工程。 增加一个 MODULE1.BAS。

2 把下面的代码复制到 MODULE1.BAS。

Public Const GENERIC_WRITE = &H40000000
Public Const GENERIC_READ = &H80000000
Const FILE_ATTRIBUTE_NORMAL = &H80
Const CREATE_ALWAYS = 2
Const OPEN_ALWAYS = 4
Const INVALID_HANDLE_VALUE= -1
Const FILE_NAME = "TEST.DAT" '任意一个文件名称

Type MyType
value As Integer
End Type

Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, _
lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long

Private Declare Function WriteFile Lib "kernel32" ( _
ByVal hFile As Long, lpBuffer As Any, _
ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long

Private Declare Function CreateFile Lib "kernel32" _
Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) _
As Long

Declare Function FlushFileBuffers Lib "kernel32" ( _
ByVal hFile As Long) As Long

Sub fillArray(anArray() As MyType)
Dim x As Integer

For x = 0 To UBound(anArray)
anArray(x).value = x
Next x
End Sub

Sub Main()
Dim fHandle As Integer
Dim T(1000) As MyType '定义一个大数组
Dim S(1000) As MyType '定义又一个大数组

fillArray T '填充
writearray FILE_NAME, T '把整个数组写入文件
readArray FILE_NAME, S '读到另一个数组
End Sub

Sub readArray(Fname As String, anArray() As MyType)
Dim fHandle As Long
Dim fSuccess As Long
Dim sTest As String
Dim lBytesRead As Long
Dim BytesToRead As Long

'取数据大小
BytesToRead = (UBound(anArray) + 1) * LenB(anArray(0))
'取 Fname 的句柄
fHandle = CreateFile(Fname, GENERIC_WRITE Or GENERIC_READ, _
0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
'CreateFile 失败的话返回 INVALID_HANDLE_VALUE
If fhandle <> INVALID_HANDLE_VALUE Then
fSuccess = ReadFile(fHandle, anArray(LBound(anArray)), _
BytesToRead, lBytesRead, 0)
'ReadFile 成功后返回一个非 0 值
'关闭文件
fSuccess = CloseHandle(fHandle)
End If
End Sub

Sub writearray(Fname As String, anArray() As MyType)
Dim fHandle As Long
Dim fSuccess As Long
Dim sTest As String
Dim lBytesWritten As Long
Dim BytesToWrite As Long
'取数据大小
BytesToWrite = (UBound(anArray) + 1) * LenB(anArray(0))
'取 Fname 的句柄
fHandle = CreateFile(Fname, GENERIC_WRITE Or GENERIC_READ, _
0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)
'CreateFile 失败的话返回 INVALID_HANDLE_VALUE
If fhandle <> INVALID_HANDLE_VALUE Then
fSuccess = WriteFile(fHandle, anArray(LBound(anArray)), _
BytesToWrite, lBytesWritten, 0)
'WriteFile 成功后返回一个非 0 值
If fSuccess <> 0 Then
'刷新文件缓冲, 马上写入数据
fSuccess = FlushFileBuffers(fHandle)
'关闭文件
fSuccess = CloseHandle(fHandle)
End If
End If
End Sub

3 在菜单 “工程”-“工程1 属性”中, 设置“启动对象” 为 “Sub Main”。

4 按 F5 开始运行。
注重稳定性 Docker 0.2.0发布 何谓机器学习 机器学习能做些什么? 艰难的决定:EA裁员10%,殃及PopCap 或提前落地!Amazon和Facebook急聘SDN工程师(Python优先) 轻松完成网站提速:来自Google、淘宝等的Nginx PageSpeed模块 Touch-Pay发布 移动联通在手机游戏领域联合推融合计费SDK 如何组织大型JavaScript应用中的代码? Robert Scoble:戴Google Glass两周后 再也不想摘下它 赶时髦?Facebook CEO 2013年将领取1美元年薪 蓝港在线CEO王峰:我在网络游戏行业十年从业记 CMDN Club 27期:从儿童音乐教育到移动碎片化管理 聚焦全球移动市场——你所不知道的俄罗斯 MemSQL:号称世界上最快的内存-关系型数据库 兼容MySQL但快30倍 PC衰落 Intel转投Google挖掘移动市场潜力 移动周报:500元体感、精确到0.01毫米的Leap Motion TUP第29期:王淮、龚世海谈如何打造优秀的技术团队 一网打尽13款开源Java大数据工具,从理论到实践的剖析 从用户体验的善与恶说起,做用户爱“玩”的教育应用 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi “BlackBerry 10移动应用开发大赛”应用推荐 Java程序优化的一些最佳实践 Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具 Anchora鲁为民:PaaS是我的兴趣 次世代IDE Light Table 0.4发布 带来众多更新和改进 别再设计易碎的Web API! LinkedIn:55人支持2700位员工,2亿用户的大数据分析 Brian Krzanich是谁?这位新CEO预示英特尔未来怎样? HTML5开发者心声:浏览器兼容性成最大问题 传微软6月下旬将发布第二代Surface 7到9英寸全有 Turbulenz:HTML5 2D和3D游戏引擎开源 携程开放平台总经理夏天:内容+高转化率成就开发者 显卡显示有阴影??? 有挑战性的翻译,请翻译下列C++名词,并请举例说明 麻烦大哥们看看!关于wab应用中在datagrid中取值的问题 如何实现CSDN这样回答问题的效果? 初级问题,请各位大侠帮忙! 数据结构中关于二叉排序树的生成问题 请教高手:如何在一区域找到找到指定颜色的点?? 一个关于窗口的问题 如何在数据窗口实现编辑、修改等后的撤消、复制、粘贴、剪切功能! exec,sp_executesql语句,中字符串变量的问题 急~~~~(请赐教)! window.showModaldialog()问题 关于Internet Explorer不能打开链接的问题 求助 求购:中国地质大学(京)网络历年考研题复习资料 Longhorn与WINDOWS2003是何关系? applet的执行顺序问题?? 在数组里找到最大值的函数是什么? 没有监听器? VB .NET能用于AutoCAD开发吗? 如何用OnMouseWheel实现Image的放大缩小? 装了Media Player 9.0,怎么没声音? 如何将DataSet中的数据全部写入数据库? 简单问题(关于光标移动) 一个关于java的小问题要请教? 请问delphi中有二~十进制的转换函数吗..... 关于不同页面调用的问题,谢谢 can't open the file"cos.obj" 这里到底怎么了?有人“非典”发作了? 关于STL的问题: dreamwearver mx如何预览asp.net的一些控件>? 关于日期格式的问题 如何使自己的程序访问别的程序的内容? 很初级的问题. 关于DB2的培训资料或者ppt 初学JAVA希望大家介绍点好书,有分的哦~~~~~~~~~~ 关于DB2的培训资料或者ppt qqf (我就是我) 可以进来一下吗? 准备作一个短信项目,请做过类似项目的高手不吝指教! 关于刷新框架内页面的问题! 请教,真的很急,来看看,,, 帮忙出主意呀, 新认识一个MM, 特骄气, 爱好也少,怎么哄呀,或者兄弟们介绍一下经验. 求delphi 5开发人员指南 电子版 如何用四叉树进行图像压缩源代码 小问题 谁对nil理解的多呀,哈哈,来看看哦,超级难题 开机自检的时候屏幕花屏,无法进入操作系统。图形模式下花屏,文字模式下正常,怎么解决? 高分求助,JS菜单问题,在线等 我需要msdn最新版 连接 vb做报表的问题 好书推荐 我的站点怎么必须登陆? 八年级上册物理人教版导学方案期中单元评价答案(改版的 叫问题解决导学方案),老师下一节课要对 我要用人教版的 山西出版传媒集团 山西教育出版社 出版的 有几种记课堂笔记的好办法? 山西民风民俗(口语交际)大约100字 求2012上半年时政热点话题! 怎么上好历史导学案课呢? 怎么记初中语文课堂笔记 惠州一中 2010 高一哪个班是重点班 结合教学实际说说如何上好一节数学课? 高中应怎样记课堂笔记感觉课上笔记很紧张,觉得是不是应该改变方式,问下 我要参加英语口语大赛,时事评论题是新闻及社会热点话题考前抽题,首先播报所给新闻或者话题,根据命题要求进行话题论述.再回答两个评委提的问题播报及评论2分钟回答评委提问1分钟没有 2011社会热点话题是什么? 2010最近热点话题越多越好啦! 时事热点话题有一个口语交际,关于热点话题的, 如何作课堂笔记?如何作 English 笔记?如何学 English?如何学 math?THANK YOU VERY MUCH! 未选择的路诗中流露了作者一种什么复杂情感 苏州在京杭大运河的那里 过年挂红灯笼的典故是什么 和李自成有关 分析《百年孤独》中的魔幻现实主义特色问答题 30分 我们班要设计一个班标,要请各位出点意见班标就如广告词一样,是一个集体的形象.要求:乐观向上,有深刻含义,让人一听到这个班标就知道这个班与众不同,非常出色.这个班标是要跟1年的,所 求几个辩论会主题,最好简单一点,时代感强一些尽量多一些,能再加两个与大学生有关的吗? 这是哪篇课文啊 英语翻译[-]February 1,2010 - Counter-Strike:Source Update ReleasedUpdates to Counter-Strike:Source have been released.The updates will be applied automatically when your Steam client is restarted.The major changes include:EngineSMX,GCF,and SYS fi 怎样做课堂笔记 为什么说意识形态能够发挥“观念的力量”的作用? 相等时间内通过的位移相等是不是匀速直线运动?相等时间内通过的位移不等是不是一定是变速运动 如何做课堂笔记 为什么说意识形态能够发挥观念的力量 春节是怎么来的?要简短一些的. 论2010年热点话题,最好是关于房产的 谈论2010年热点话题 大于150字 怎样测蚂蚁体内酸碱度,也就是Ph为多少? A,B两质点做匀速直线运动,那么在相等时间内,他们的位移相同 2010年至2011年的政治热点话题 ? 中兴U960s手机没有自带的Recovery!如何刷入Recovery?手机已ROOT.通过各种方式刷入Recovery,有的提示成功,但只要进入Recovery模式就是这个样子 甲瓶有酒精480毫升,乙瓶有300毫升,现甲、两瓶每天都用去酒精20毫升,问几天后甲剩下的酒精刚好是乙的2倍?列方程 这哪篇课文里的 如何没有root进入recovery模式 A瓶有酒精480毫升,B瓶有酒精300毫升,现A、B两瓶每天都用去酒精20毫升,问几天后A剩下的酒精刚好是B的2倍 09年的热点话题小学六年级下册第二单元口语交际急用 手机在没有root的情况下怎么刷入第三方recovery啊我的oppo finder升级到4.1.2后,无法一键root,我下了个root包和第三方recovery,怎么刷入第三方recovery,官方的recovery无法安装root包 一袋牛奶5分之1升,一盒牛奶2分之1升.(1)周末,李阿姨到超市买了4盒牛奶和5袋牛奶,一共是多一袋牛奶5分之1升,一盒牛奶2分之1升.(1)周末,李阿姨到超市买了4盒牛奶和5袋牛奶,一共是多少毫 盐类的水解PH大小的判断方法.怎么判断2种物质的PH呢?希望特全,最好给例子.给的全 多加50分, 关于马的典故 少的 洁白牌洗洁精每瓶25元,王阿姨准备给单位购买12瓶这种品牌的洗洁精,甲超市买五送一,乙超市打八五折,到哪家比较划算?瞎掺合的爬, 盐类的水解PH一定发生变化吗 当前中国的文化信仰方面应该怎么做呢 csonline中C4爆炸倒数时的英文句子及解释twenty second 后面说的啥 然后等一会就倒记时了 急救:盐类的水解与PH值!某温度下,0.1mol/L醋酸溶液的PH=3.将该温度下0.2mol/L醋酸溶液和0.2mol/L醋酸钠溶液等体积混合后,混合液的PH=4.7.下列说法正确的是()并说明原因A 该温度下,0.01mol/L醋酸 古人谈读书说要把“厚书读薄,薄书读厚”,所谓“薄书读厚”即孔子所说的( )(五个字). 一个做直线运动物体的位移随时间变化第二题 求详解! 高中常见盐类的水解的PH值?要准确的PH值,是盐溶于纯水中 我说的是化学上得盐类如NAHCO3,NAHCLO等 电流表测的是哪个电流a为电流表,b为电压表 守时 阅读 我得到了什么启示 下列句子的语病分别在哪里,福建省福州市荣获“全国卫生城市”的原因是全市人民共同努力的结果. 马的典故有什么 比较PH的大小比较PH 0.1mol/L的(NH4)2SO4 和NaHSO4 PH 哪个大?为什么? 课堂笔记怎么记? 谁知道关于''马''的典故 那导学案 与学案 ,两者制作的交叉部分岂不太多了?它们都贯穿全节课哦! 怎样记课堂笔记? 语文民族风俗口语交际 莎拉波娃黑色透视装出席活动(组图)抓拍蝴蝶环绕乌龟欲饮眼泪唯美图景【组宗庆后语出惊人:中国不能再造房子了金正恩出席“2万连长”大会并讲话【高“土豪”纯金奥特曼来啦! 售价超千万美国男子为防妻分家产 将值50万美元国防部:无人机若被击落必反击聚焦去美国化:是否为世界多极化发展必第二届世界浙商大会昨在杭开幕 现场签教授称“黄金大米”尚处于实验室研究阶实拍3美女KTV内混战 系因麦霸引发台州50岁男子打开房间内煤气罐引爆将马戏团大哥违章被扣车 停在停车场货车货车司机开车睡着 货车冲到落差七八米嘉兴铁路刑警从围观人群中找到诈骗犯罪男子喝完喜酒顺手牵走了新娘的首饰情侣高速开车过程中吵架 女友气愤跳下解密以色列版007:最爱暗杀 钟爱炸朝鲜美林骑马俱乐部竣工 女兵骑马英姿多国抗议被美监听通讯 印度:总理无手美国情报机构或已监听默克尔电话长达十长沙北斗卫星导航产业基地落户麓谷为困难居民上门理发 剃头师傅有批“铁高速路上搭帐篷 两学生用生命“露营”湖南:老人焚烧垃圾 垃圾内废电池爆炸向曙光当选永州市人民政府市长湖南省直各部门不再新设行政执法队伍8位新任命省政府组成人员任职前发言长沙市文源街道举行“欢乐潇湘 舞动文湘潭两教授 为琐事跨年打两架8月1日起长沙火车站广场停车将改计次坐公交车突然晕倒乘客司机合力救援长沙市国资委领导班子召开专题民主生活先抢劫后信用卡诈骗 被同一民警抓获医院前救护车丢下重病流浪汉?医院称在赌球输光家产 球迷横卧高速张剑飞:加大对重点车辆和驾驶人源头监长沙望城区街道为居民免费体检湘潭一幼儿园园车翻入水塘袁隆平考察望城“三一丰产”基地家人不让玩手机 13岁少女喝下农药长沙扩大限货范围 查获闯禁货车800
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘