What's the fastest way (using VB6) to read an entire, large, binary file into an array?
To open a file in binary format, add 'b' to the mode parameter. Hence the "rb" mode opens the file in binary format for reading, while the "wb" mode opens the file in binary format for writing. Unlike text files, binary files are not human-readable. When opened using any text editor, the data is unrecognizable.
Here's one way, although you are limited to files around 2 GB in size.
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
You can compare these two
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
I prefer the second one but it has this nasty side effect. If sFile
does not exists For Binary
mode creates an empty file no matter that Access Read
is used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With