7
VB6을 사용하여 전체적으로 큰 바이너리 파일을 배열로 읽어들이는 가장 빠른 방법은 무엇입니까?배열로 이진 파일 읽기
VB6을 사용하여 전체적으로 큰 바이너리 파일을 배열로 읽어들이는 가장 빠른 방법은 무엇입니까?배열로 이진 파일 읽기
약 2GB 크기의 파일로 제한되어 있지만 여기에는 한 가지 방법이 있습니다.
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
당신은 내가 두 번째 선호하는이 두
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
을 비교할 수 있지만,이 불쾌한 부작용이있다. sFile
이없는 경우 For Binary
모드는 Access Read
과 상관없이 빈 파일을 만듭니다.
왜 루프가 발생합니까? 'Get fileNum,, bytes' 그리고 100x – wqw
Get'Get fileNum, data'에서'Runtime Error 458, 변수는 Visual Basic에서 지원되지 않는 자동화 타입을 사용합니다. ' 무슨 일있어? 도서관 참고 자료가 누락 되었습니까? – user2173353
확인. 알았다! 그것을 다음과 같이 변경하십시오 :'ReDim bytes (1 To lenF) By Byte'. 분명히 나는 Variant를 사용하고 있었고 전혀 그것을 좋아하지 않았다. – user2173353