窗体上有两个控件,一个text和一个CommonDialog,用来选择文件。选择完了以后,读入数据库,要将选取的文件按一定的大小放进去,而且要使binary格式的。比方说,我选择了一个.xls,4m,那么我将在数据库里放入两条记录(name,index,binaryData),一条为(test.xls,1,前2M的内容),一条为(test.xls,2,后2m的内容)

解决方案 »

  1.   

    Private Sub fileInput()
    Dim fPath As String
    Dim i As Integer
    Dim limitLen As Long
    Dim filLen As Long
    Dim oneFile() As Byte
    Dim files As New Collection
    Dim fileNo As Integer
    Dim fileLeft As Long
    Dim fileStart As Long
        
        limitLen = 2097152                          '2*1024*1024
        fPath = CommonDialog1.filename
        If fPath = "" Then
            MsgBox "選択ください"
            Exit Sub
        End If
        filLen = FileLen(fPath)                     'byte
        
        fileStart = 1
        fileNo = FreeFile
        fileLeft = filLen
        
        Open fPath For Binary As fileNo
        For i = 1 To IIf((filLen Mod limitLen = 0), Int(filLen / limitLen), (Int(filLen / limitLen) + 1))
            
            If fileLeft < limitLen Then
                ReDim oneFile(1 To fileLeft)
            Else
                ReDim oneFile(1 To limitLen)
            End If
            
            Get #fileNo, fileStart, oneFile
            files.Add oneFile
            fileStart = fileStart + limitLen
            fileLeft = filLen - limitLen
        Next i
        Close #fileNo
        
        Debug.Print files.Count
        
        'Open App.Path & "\FORMAT\test.xls" For Binary As fileNo
        Open App.Path & "\FORMAT\test1.doc" For Binary As fileNo
        Put #fileNo, 1, files.Item(1)
        Close #fileNo
        
    End Sub
    我用小于2m的文件测试,重新写出来的都跟原来的不一样,问题出在哪里呢?