2010-03-16 50 views

Trả lời

8

Dưới đây là một cách, mặc dù bạn bị giới hạn ở các tệp có dung lượng khoảng 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 
+1

Tại sao lặp lại? Chỉ cần 'Nhận fileNum,, byte' và tăng tốc độ 100x – wqw

+0

Trên' Nhận tập tinNum,, dữ liệu' Tôi nhận được một 'Lỗi thời gian chạy 458, Biến sử dụng Loại Tự động hóa không được hỗ trợ trong Visual Basic'. Có ai biết cái gì đang xảy ra không? Tôi có thiếu tham chiếu thư viện không? – user2173353

+0

OK. Hiểu rồi! Thay đổi nó thành: 'ReDim bytes (1 To lenF) As Byte'. Dường như tôi đã sử dụng Biến thể và nó không thích nó chút nào ... – user2173353

5

Bạn có thể so sánh hai

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 

tôi thích thứ hai nhưng nó có tác dụng phụ khó chịu này. Nếu sFile không tồn tại chế độ For Binary sẽ tạo một tệp trống bất kể Access Read được sử dụng.

Các vấn đề liên quan