我有一个由Compaq Visual Fortran编写的程序产生的二进制文件。 如何读取特定行并将其保存在Excel工作表中?
答案 0 :(得分:6)
您必须使用“二进制访问”打开它。
请参阅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
答案 1 :(得分:5)
另一种方法是使用ADODB.Stream:
With CreateObject("ADODB.Stream")
.Open
.Type = 1 ' adTypeBinary
.LoadFromFile file.Path
bytes = .Read
.Close
End With
(对不起,我真的不确定它是什么库,这就是为什么这个示例代码使用CreateObject和文字值1而不是命名常量adTypeBinary!)
答案 2 :(得分:3)
如果要将整个文件读入一个大数组,可以使用以下代码:
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的答案相同,但没有使用外部库就实现了。