当前位置:  开发笔记 > 编程语言 > 正文

如何使用VBA读取二进制文件?

如何解决《如何使用VBA读取二进制文件?》经验,为你挑选了3个好方法。

我有一个二进制文件,由Compaq Visual Fortran编写的程序产生.如何读取特定行并将其保存在Excel工作表中?



1> Curtis Inder..:

你必须使用"二进制访问"打开它.

请参阅http://www.vbforums.com/showthread.php?t=430424

Sub Temp()
    Dim intFileNum%, bytTemp As Byte, intCellRow%
    intFileNum = FreeFile
    intCellRow = 0
    Open "C:\temp.bin" For Binary Access Read As intFileNum
    Do While Not EOF(intFileNum)
        intCellRow = intCellRow + 1
        Get intFileNum, , bytTemp
        Cells(intCellRow, 1) = bytTemp
    Loop
    Close intFileNum
End Sub



2> Todd Owen..:

另一种方法是使用ADODB.Stream:

With CreateObject("ADODB.Stream")
    .Open
    .Type = 1  ' adTypeBinary
    .LoadFromFile file.Path
    bytes = .Read
    .Close
End With

(对不起,我真的不确定它是什么库,这就是为什么这个示例代码使用CreateObject和文字值1而不是命名常量adTypeBinary!)



3> Erik A..:

如果要将整个文件读入一个大数组中,则可以使用以下代码:

Dim byteArr() As Byte
Dim fileInt As Integer: fileInt = FreeFile
Open "C:\path\to\my\file.ext" For Binary Access Read As #fileInt
ReDim byteArr(0 To LOF(fileInt) - 1)
Get #fileInt, , byteArr
Close #fileInt

结果与Todd Owen的答案相同,但无需使用外部库即可实现。

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有