【VB6|第25期】VB6文件操作:读取与写入二进制数据

日期:2024年8月1日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


在这里插入图片描述



一、前言


今天,我们将探讨上期教程《【VB6|第24期】VB6玩转Base64数据:编码与解码指南》留下来问题,在 VB6 中,如何读取文件为二进制数据,以及如何将二进制数据转换为文件。本文将带你一步步完成这两个过程。

二、二进制、文件是什么?


二进制是一种计数系统,只使用两个数字:0和1。在计算机科学中,二进制用于表示所有形式的数据,因为计算机的基本硬件,如处理器和存储器,是基于二进制逻辑设计的。

文件是存储在存储设备上的数据集合,它有特定的格式和组织结构。文件可以是文本、图像、音频、视频或其他任何类型的数据。

总而言之,二进制是计算机处理存储数据根本方式,而文件是在这个基础上构建的用于持久存储和组织数据的高级结构。二进制和文件之间的联系在于文件实际上是由二进制数据组成的,它们的区别在于抽象层次和用途。

三、读取文件为二进制数据


VB6 中,读取文件并将其内容作为二进制数据加载到变量中,我们可以使用ADODB.Stream 对象。以下是详细步骤和代码示例:

(1)步骤说明

  • 创建 ADODB.Stream 对象。
  • 设置 Stream 的类型为 adTypeBinary
  • 打开 Stream 对象。
  • 从文件中读取内容。
  • 将内容加载到变量中。
  • 关闭并释放 Stream 对象。

(2)示例代码

Public Function streamFileToBinary(Byval sPath as String) As Variant
On Error Resume Next
'函数说明:读取文件二进制数据
'创建作者:Commas
'创建时间:2024-07-28
'修改时间:
'------数据格式说明------
'sPath:文件路径
'------数据格式说明------

	Dim adoStream As Object
	Dim sPath As String
	
	' 创建ADODB.Stream对象
	Set adoStream = CreateObject("ADODB.Stream")
	
	' 设置为二进制模式
	adoStream.Type = 1 ' adTypeBinary
	
	' 打开Stream对象
	adoStream.Open
	
	' 从文件加载内容
	adoStream.LoadFromFile sPath
	
	' 将内容返回
	StreamFileToBinary = adoStream.Read
	
	' 关闭Stream对象
	adoStream.Close
	
	' 释放对象
	Set adoStream = Nothing

End Function

' 调用示例
Dim vBinaryData As Variant
vBinaryData =  streamFileToBinary("D:\header.jpg")

四、将二进制数据转换为文件


(1)步骤说明

  • 创建 ADODB.Stream 对象。
  • 设置 Stream 的类型为 adTypeBinary
  • 打开 Stream 对象。
  • 将二进制数据写入 Stream 对象。
  • Stream 对象的内容保存到文件中。
  • 关闭并释放 Stream 对象。

(2)示例代码

Public Function StreamBinaryToFile(ByRef vBinaryData As Variant, ByVal sPath As String)
On Error Resume Next
'函数说明:将二进制数据保存为文件
'创建作者:Commas
'创建时间:2024-07-26
'修改时间:
'------数据格式说明------
'vBinaryData:二进制数据
'sPath:文件路径
'------数据格式说明------

Dim adoStream As Object
Dim filePath As String

	' 创建ADODB.Stream对象
	Set adoStream = CreateObject("ADODB.Stream")
	
	' 设置为二进制模式
	adoStream.Type = 1 ' adTypeBinary
	
	' 打开Stream对象
	adoStream.Open
	
	' 将二进制数据写入Stream
	adoStream.Write vBinaryData 
	
	' 将Stream的内容保存到文件
	adoStream.SaveToFile sPath, 2 ' 2 = adSaveCreateOverWrite
	
	' 关闭Stream对象
	adoStream.Close
	
	' 释放对象
	Set adoStream = Nothing

End Function

' 调用示例
Dim vBinaryData As Variant
vBinaryData =  streamFileToBinary("D:\header.jpg")

call StreamBinaryToFile(vBinaryData,"D:\header_new.jpg")

五、结论


通过本教程,我们掌握了 VB6 中实现文件与二进制数据之间相互转换的技巧。结合之前的教程,我们学习了二进制数据与Base64编码字符串之间的转换方法。借助二进制这一中间桥梁,我们实现了文件与Base64编码字符串的无缝对接,从而在数据处理和传输方面变得更加游刃有余。这一系列技能的掌握,将极大提升我们在编程实践中处理复杂数据场景的能力。

另外,我也将相关功能封装成了一个 .class 文件,引入开箱即可使用,需要的小伙伴欢迎在【我的资源】下载。详细功能如下:

  • '函数说明:Base64编码,即将原始的二进制格式数据编码为Base64编码的数据
    Public Function Base64Encode(ByRef vBinaryData As Variant) As String

  • '函数说明:Base64解码,即将Base64编码的数据被解码回原始的二进制格式数据
    Public Function Base64Decode(ByRef sBase64 As String) As Variant

  • '函数说明:将字符串编码为Base64类型的数据
    Public Function Base64EncodeFromString(ByRef sText As String) As String

  • '函数说明:将Base64类型的数据解码为字符串
    Public Function Base64DecodeToString(ByRef sBase64 As String) As String

  • '函数说明:将字符串转换为二进制数据
    Public Function StreamStringToBinary(ByRef sText As String) As Variant

  • '函数说明:将二进制数据转换为字符串
    Public Function StreamBinaryToString(ByRef vBinaryData As Variant) As String

  • '函数说明:读取文件二进制数据
    Public Function StreamFileToBinary(ByVal sPath As String) As Variant

  • '函数说明:将二进制数据保存为文件
    Public Function StreamBinaryToFile(ByRef vBinaryData As Variant, ByVal sPath As String)

  • '函数说明:将文件编码为Base64类型的数据
    Public Function Base64EncodeFromFile(ByRef sPath As String) As String

  • '函数说明:将Base64类型的数据保存为文件
    Public Function Base64DecodeToFile(ByRef sBase64 As String, ByVal sPath As String)


参考文章:


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/140845108

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值