rainstormmaster(暴风雨 v2.0),速度确实很慢,自己定义了下缓冲区,结果死机了:)
设想是一次读100KB的大小,我需要做什么?
谢谢
其他朋友可能不知道我说什么,下面是代码,欢迎大家指点我
Dim buff() As Byte
ReDim buff(0) '一次只读一个字节,速度会相当慢,想快点就要把缓冲区定义得大一些,当然代码也要进行修改
Open mFile For Binary As #1
For i = 1 To mFileLen
Get #1, i, buff(0)
iStm.Write buff
Me.ProgressBar1.Value = i
Next
-------------------------------------------------------
本来是准备单独发感谢贴,但是我只有40点了(汗~~~,小弟问题比较多),所以一并发了。
到今天总算是把数据库程序搞出来了,学习了一些控件的知识,首先很感谢csdn提供了这个技术交流平台。其次,非常谢谢帮助过我的朋友,暴风雨 v2.0,Leftie(左手,为人民币服务),超级绿豌豆,zyg0(影子(成功减肥10斤,可给我饿坏了,我要补回来) ,金脚指,老加班的人--好好学习,天天吃饭) ,vbman,sendwb(风间苍月),yinweihong(真名:尹伟红) ,hot1kang1(许仙) ,还有许许多多的朋友,他(她)们曾耐心地解答过我的很多问题。这里很感谢你们。
谢谢

解决方案 »

  1.   

    to编程人生,嗯,boss觉得上传文件的时候看着进度条爽。
    相关这个问题的链接:)
    http://community.csdn.net/Expert/TopicView3.asp?id=4418371谢谢
      

  2.   

    你们老板看到蜗牛在跑就很高兴吗?象楼上 flyingscv(zlj) 说的,不用逐个字节读,依据文件大小(mFileLen),按实际情况
    分段读取更合理一些
      

  3.   

    Private Sub Command1_Click()
        Dim i As Long
        Dim mFile As String
        mFile = "e:\mc\rich.doc"
        Dim mFileLen As Long
        mFileLen = FileLen(mFile)
        Me.ProgressBar1.Min = 0
        Me.ProgressBar1.Max = mFileLen
        Dim iStm As ADODB.Stream
        Set iStm = New ADODB.Stream
        iStm.Type = adTypeBinary
        iStm.Open
        Dim buff() As Byte
        Dim buffsize As Long
        Dim ReadNum As Long
        Dim NotReadbuffsize As Long
        buffsize = 1024& * 100&
        If mFileLen < buffsize Then
            ReDim buff(mFileLen - 1)
            Open mFile For Binary As #1
            Get #1, , buff
            iStm.Write buff
            Me.ProgressBar1.Value = mFileLen
            Close #1
        Else
           NotReadbuffsize = mFileLen
           Open mFile For Binary As #1
           Do
                If NotReadbuffsize < buffsize Then
                    ReDim buff(NotReadbuffsize - 1)
                Else
                    ReDim buff(buffsize - 1)
                End If
                Get #1, , buff
                iStm.Write buff
                ReadNum = ReadNum + 1
                NotReadbuffsize = mFileLen - buffsize * ReadNum
                Me.ProgressBar1.Value = iStm.Size
           Loop Until NotReadbuffsize <= 0
           Close #1
        End If
        iStm.SaveToFile "e:\mc\bpi.doc"
        iStm.Close
    End Sub