VB 二进制文件的操作
所有文件的存储其实质都是二进制的,二进制文件往往由两部分组成,一部分是文件头另一部分存放了文件的内容。文件头通常存放与文件格式有关的信息,以BMP等图象文件为例,它们的文件头中存放了是何种图形格式、图象大小、调色板等信息,要显示图象时先读取文件头以获得文件的详细信息,然后再按其格式把图象内容显示出来。用二进制方式可以操作任何的文件,当然至关重要的一点是要清楚了解所操作文件的文件头结构。
VB中二进制文件操作主要应用的方法和函数有:Open,Close,Get,Put等。
Open:在For后面的打开模式要用Binary。
Close:关闭文件。
Get:在指定位置取得文件的内容,如果省略位置则从当前位置读取。
Put:在指定位置写入文件,如果省略位置参数就从当前位置写。
下面结合代码讲解二进制文件的操作。
下述程序完成了将两个文件结合成一个文件以及将这个结合后的文件再拆分成原来的两个文件。文件头的结构是自己定义的,非常简单,共8个字节(也就是两个长整型的长度),前4个字节存放第一个文件的长度,后4个字节存放第二个文件的长度。为了更直观地表达文件的结构,现假设有两个文件,第一个文件长度是100字节,第二个文件是200字节,那么合并后得到的文件应该是308字节。按顺序来看,文件的结构是:
4第一文件的长度
4第二文件的长度
100第一文件的二进制内容
200第二文件的二进制内容
除了文件头的8字节长度是固定的后面的长度都会因文件的不同而变化的。
Private Sub MergeFile()
Dim strFileName1 As String '第一个文件
Dim strFileName2 As String '第二个文件
Dim strOutput As String '合并后的文件
Dim aryContent() As Byte '用来读取文件的数组,每次读取前要重定义
strFileName1 = "c:\a.bmp"
strFileName2 = "c:\b.bmp"
strOutput = "c:\out.bmp"
'注意下面三个Open语句都是用Binary模式打开的
Open strOutput For Binary As #100
Open strFileName1 For Binary As #1
Open strFileName2 For Binary As #2
Put #100, , LOF(1) '取得第一文件的长度,并把它写入到合并文件的文件头中
Put #100, , LOF(2) '取得第二文件的长度,并写入到合并文件的文件头中
ReDim aryContent(LOF(1) - 1) '重定义数组,为读取文件做准备
Get #1, , aryContent() '取得第一文件的内容到数组
Put #100, , aryContent() '把第一文件的内容写到合并文件中
ReDim aryContent(LOF(2) - 1)
Get #2, , aryContent()
Put #100, , aryContent()
'关闭文件
Close #1
Close #2
Close #100
End Sub
'实现文件的拆分
Private Sub SplitFile()
Dim strFileName1 As String
Dim strFileName2 As String
Dim strFileSplit As String
Dim aryContent() As Byte
Dim lngLOF(1) As Long '存放从文件头取得的两个文件的长度
strFileName1 = "c:\a2.bmp"
strFileName2 = "c:\b2.bmp"
strFileSplit = "c:\out.bmp"
Open strFileSplit For Binary As #100
Get #100, , lngLOF(0) '取得第一文件的长度
Get #100, , lngLOF(1) '第二文件的长度
Open strFileName1 For Binary As #1
Open strFileName2 For Binary As #2
ReDim aryContent(lngLOF(0) - 1) '用第一文件的长度重定义数组,为读取第一文件做准备
Get #100, 9, aryContent() '从第9字节,即文件后面开始读取第一文件的内容
Put #1, , aryContent() '把取得的内容写入到拆分文件中
ReDim aryContent(lngLOF(1) - 1)
Get #100, 9 + lngLOF(0) + 1, aryContent() '从第9字节再加上第一文件的长度处开始读取第二文件的内容,这里可以清楚地看到文件头的作用了
Put #2, , aryContent
Close #1
Close #2
Close #100
MsgBox "拆分完成。", vbInformation
End Sub
文本文件由于没有格式所以它的读写都比较简单和直观,而用二进制操作文件时其实质就是对文件头的理解,如果不知道文件头的结构那就无法对文件进行处理了,知道了文件头所包含的信息后,对文件的操作其实就是按规则进行Get、Put罢了。
http://www.cxy.me/doc/5352.htm
相关文章参考:
☆VB 二进制文件的操作
☆进制转化进10进制数
☆VB 二进制文件的操作
☆VB 二进制数组与十六进制字符串相互转换
☆VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
★VB部分相关文章推荐:★
※vb中line的用法[转]
※画图工具的VB实现
※VB 一个获得自己外网 IP 地址的程序代码
※VB程序中实现IP地址子网掩码网关DNS的更改 [转]
※在 VB 中应用 FSO 对象模型介绍(摘自网络)
※[转] Vb中FSO 对象的介绍
※VB 画坐标轴
※VB 二进制文件的操作
※[VB]BMP转JPGVB中KeyCode常数用法
※vb实时曲线的绘制和保存
※VB操作EXCEL
※vb初学回顾:最大公约数 最小公倍数 素数求取
※vb 关于窗口样式的API以及处理文本的API参考
※【引用】在VB6.0中实现弹出式菜单的几种方法
※【引用】URLDownloadToFile_VB下载文件!
※利用WinRar压缩和解压缩文件
※VB 剪切板
※VB实现指示窗口中拖动方框的程序
※VB绘制走动的表针
※如何用VB制作DLL文件
※【引用】VB修改IP地址
※VB多窗体退出代码
※[转]VB:如何检测到U盘的插拔(源代码)
※巧用SendMessage函数扩展Treeview功能
※vb中如何在任务管理器里面隐藏应用程序进程
※如何实现VB与EXCEL的无缝连接
※一个API方式存取日志文件的模块[VB]
※VB用记录集填充表格函数
※VB打开文本文件各种方法
※vb ClipBoard 剪切板应用(复制剪切粘贴)
※【引用】窗口处理技巧大全 vb(窗体控件)
※【转】 Md rd命令之VB
※vb:读写文本文件
※在vb中实现真正锁定的带自定义菜单的文本控件
※【引用】使用CommonDialog的ShowSave后如何判断是保存还是※取消?
※vb 关于commondialog的多选VB获取Windows操作系统所有版本
※vb UTF文本文件访问
※VB编程中的Unicode vs Ansi
※VB编PiView4注册机
※VB获取超过2G文件的大小
※比CopyMemory还要快的函数SuperCopyMemory
※VB:编程效率快步提高之:十七种可用一行代码完成的技巧
※VB画出来的五星红旗
※Qt第一印象——Qte与Qt
更多精彩>>>
VB 二进制文件的操作相关推荐
- C语言文件读写(3)-二进制文件读写操作
C语言文件读写-二进制文件读写操作 先说说什么是二进制文件,二进制文件是相对于文本文件而言的,文本文件是由一行一行的字符的有序序列组成的.二进制文件就没有行的概念了,也是由有序的字符组成的,但是在写入 ...
- 计算机会考操作题vb,2016年9月计算机二级考试《VB》上机操作题题库(2)
2016年9月计算机二级考试<VB>上机操作题题库(2) (1)在考生文件夹下有一个工程文件03.vbp.程序运行后,单击"读入数据"按钮,可将考生文件夹下in3.tx ...
- VB 文件常用操作相关API
下面是windows中提供的对于文件进行操作的API函数及其功能: Windows API函数 功能 CloseHandle 关闭一个内核对象.其中包括文件.文件映射.进程.线程.安全和同步对象等.涉 ...
- VB 游戏外挂操作类
VB 游戏外挂操作类包括:模拟按键.卸载进程.加载窗口.读取字符.读取内存.写入内存 (代码另存为aa.cls) Option Explicit 'Dim T As New 游戏外挂类 'Privat ...
- 在VB环境中操作三维模型的实现方法
在VB环境中操作三维模型的实现方法 摘要 针对VC在开发虚拟设计和三维仿真程序中的不足,提出了基于VB环境开发三维仿真程序的可行性,并对其中关键的三维模型的显示.操作等技术性问题给出了具体的解决方法. ...
- vb实验用计算机安排考试日程,计算机二级VB考试上机操作题及答案2017
计算机二级VB考试上机操作题及答案2017 一.基本操作题 (1)在名称为Forml.标题为"球类项目"且没有最大化和最小化按钮的窗体上画1个名称为Combol的组合框.组合框中的 ...
- vb.net excel操作:填充人事档案表并打印 中打印补充
本节文章是对<vb.net excel操作:填充人事档案表并打印>的补充. 本节将不使用默认打印机进行打印,实现自主选择打印机. 原代码中使用打印语句如下: Wsheet. ...
- C++二进制文件读写操作
二进制文件的读写稍微麻烦一些,对二进制文件的读写同样需要打开文件和关闭文件,打开和关闭方式与文本文件相同,只不过需要在打开方式上加上ios::binary以指明以二进制方式进行读写. 对于文本文件而言 ...
- mysql设置停止二进制文件的操作_window下使用二进制文件对mysql数据库备份及恢复(再现用户操作)...
1,查看二进制日志文件是否启用 mysql>show variables like 'log_bin'; 如果未启用,则启用二进制文件(默认是关闭的 ) 2,在mysql的配置文件[mysqld ...
最新文章
- 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)
- 字节跳动面试官:你离50w年薪就差答对了这个算法题!
- 人工智能基准(Benchmarking)再思考
- Python ConfigParser的使用
- python 三引号_Python 基础(一):入门必备知识
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(第一个Python程序)
- 信息学奥赛一本通(2067:【例2.5】圆)
- android samba github,安卓手机访问树莓派samba文件共享出错解决
- JS数据类型 构造函数 原型链
- CentOS 6.3 源码编译安装Apache
- Confluence 6 导入 Active Directory 服务器证书 - UNIX
- matlab数据显示格式,如何使用MATLAB以图形格式记录和显示数据
- php 未找到驱动程序,Laravel 5 PDOException找不到驱动程序
- 网卡类双频WiFi模块选型参考
- 前端Demo - 日历控件纯原生实现
- PDF 解锁(unlock)
- Robotframework基础篇(一):使用ride编辑器
- wps小写金额转大写快捷键,wps表格怎么把金额变为大写
- scoop bucket add 后仍然报错 Couldn‘t find manifest for
- JavaScript 编程精解 中文第三版 十六、项目:平台游戏
热门文章
- 谷歌停止华为合作;联想声明未向华为断供;Android 遭反垄断调查 | 极客头条...
- GitHub:围剿Python计划!程序员:早知必有一战!你站谁?
- AI 专利之争:小米超华为,国家电网才是大 Boss?
- 戴尔科技集团公布 2019 财年第四季度及全年财报,巨大进步和强劲发展的一年...
- Android 危险!
- 安卓恶意软件Skygofree爆发,连你的照片都能监控到
- 想为 iPhone X 做交互设计?你需要读这篇文章
- 什么是Redis缓存雪崩、缓存穿透和缓存击穿
- pycharm 设置为git默认编辑器_pycharm配置使用git
- python两大特性与四大语法_Day 1:Python 两大特性和四大基本语法