电脑文件主要分为文本文件和二进制文件,文本文件可直接读取文字化的内容,如txt格式文本等,二进制文件不可直接读取底层代码,如shp文件等。通过下面CAD vba 代码可读取出文本内容。
Sub 读取二进制文件返回十进制_十六进制代码()
'qq443440204 于2024年2月22日11:49:40
Dim filename As String, str As String, strhex As String
filename = ActiveDocument.Path & "\空白\abc.dbf" '将此目录改为读取文件目录,此代码为CAD vba环境,若excel环境应该代码所在的路径应为thiswork.path
Open filename For Binary As #1 '二进制模式打开文件,文件名为#1,即1号文件,必须带#h号
Dim mybyte() As Byte, i As Integer '定义mybyte数组,数组务必加括号:(),一个item存放一个字节
Dim mylen As Integer
mylen = LOF(1) '获取文件字节数,括号()内为文件号,上面给文件起的名字为#1,括号内不用加#号
ReDim mybyte(mylen - 1) '务必重新定义数组的item数,从0开始计算。
For i = 0 To mylen - 1 '循环至文件末端,lof函数返回文件的字节数
Get #1, , mybyte(i) '获取文本内容 '将二进制文件内容存入字节数组
' MsgBox "第 " & i + 1 & " 个字节:" & Chr(13) & "十进制为:" & mybyte(i) & Chr(13) & "十六进制为:" & Hex(mybyte(i))
' Stop
str = str & mybyte(i) & Chr(32) & "-" '将字节内容存入字符串str
strhex = strhex & Hex(mybyte(i)) & Chr(32) & "-" 'hex函数返回的是代表十六进制数字的字符串
Next i '循环读取
Close #1
MsgBox "十进制代码为:" & Chr(10) & str, , "版权所有@qq443440204"
MsgBox "十六进制代码为:" & Chr(10) & strhex, , "版权所有@qq443440204"
End Sub
'版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
十六进制结果:
'版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明qq443440204。
'原文链接:010集——vba代码读取二进制文件并返回十进制(十六进制)数字代码-CSDN博客