将二进制文件读入数组

Dav*_*ave 7 vb6 file-io

使用VB6将整个大型二进制文件读入数组的最快方法是什么?

rav*_*ven 8

这是一种方法,尽管您仅限于大小为2 GB的文件.

  Dim fileNum As Integer
  Dim bytes() As Byte

  fileNum = FreeFile
  Open "C:\test.bin" For Binary As fileNum
  ReDim bytes(LOF(fileNum) - 1)
  Get fileNum, , bytes
  Close fileNum
Run Code Online (Sandbox Code Playgroud)


wqw*_*wqw 5

你可以比较这两个

Private Function ReadFile1(sFile As String) As Byte()
    Dim nFile       As Integer

    nFile = FreeFile
    Open sFile For Input Access Read As #nFile
    If LOF(nFile) > 0 Then
        ReadFile1 = InputB(LOF(nFile), nFile)
    End If
    Close #nFile
End Function

Private Function ReadFile2(sFile As String) As Byte()
    Dim nFile       As Integer

    nFile = FreeFile
    Open sFile For Binary Access Read As #nFile
    If LOF(nFile) > 0 Then
        ReDim ReadFile2(0 To LOF(nFile) - 1)
        Get nFile, , ReadFile2
    End If
    Close #nFile
End Function
Run Code Online (Sandbox Code Playgroud)

我更喜欢第二个,但它有这种令人讨厌的副作用.如果sFile不存在For Binary,Access Read则无论使用何种模式,都会创建一个空文件.