有一段代码
    Open opendialog.FileName For Binary As #intFile
    '检查是否小文件
    If FileSize <= lngInputSize Then        '******************************标记1
        strInput = Space(FileSize)          '******************************标记2
        Get #intFile, , strInput
        wsTransfer.SendData strInput
        GoTo 1
    End If
    '超过 1KB - 将分段为 1024 字节
    
    Do While EOF(intFile) = False           '******************************标记3        If dblSent + lngInputSize <= FileSize Then
            strInput = Space(lngInputSize)
            Get #intFile, , strInput
            wsTransfer.SendData strInput
            dblSent = dblSent + lngInputSize
            DoEvents
        Else
            strInput = Space(FileSize - dblSent)
            Get #intFile, , strInput
            wsTransfer.SendData strInput
            Exit Do
        End If
        DoEvents
    Loop标记1:这里的lngInputSize变量在程序中没有定义,我也没查出它是VB的常量,不知道这是什么意思?标记2:这里有点没看懂,插入空格干什么?另外get我查是赋予文件记录,是把文件内容赋值strInput变量么?一次能传多少容量?标记3:这里EOF(intFile) = False    什么意思?

解决方案 »

  1.   

    乱解一通标记1:这里的lngInputSize变量在程序中没有定义,我也没查出它是VB的常量,不知道这是什么意思?
         如果确实没有定义的话,说明写代码写的不严格,代码的最开头没有加 Option Explicit
         这个变量应该是定义一次读取文件的字节数,一般文件较大时,会分块处理,例如一次处理512字节,1024个字节等等
         这句的意思是如果被读取的文件小于定义的块大小,就直接一次性读取完。
      

  2.   

    标记2:这里有点没看懂,插入空格干什么?另外get我查是赋予文件记录,是把文件内容赋值strInput变量么?一次能传多少容量?
         这里是定义一个存放读取的数据的缓存,就是说你想一次读取多少字节,存放读取内容的变量就应该定义多大,我一般是定义成这样 dim b(512) as byte 。括号里面的512表示块大小,参考第一个问题的解释。
         和此处类似作用的下面也出现了一次,当文件大于指定块大小时,就每次读取一块,循环读完为止。标记3:这里EOF(intFile) = False    什么意思?
        EOF是一个测试指定文件号的文件指针是否到了末尾,这里=false表示未到末尾,未到末尾就得继续读啊,读文件的时候一般都要随时检测是否超过文件大小了,你说一个文件假设只有300个字节的话,你读第301个字节会不会报错。
        对文件操作的时候,都有一个文件指针确定当前的读写位置。这一点知道就可以了,不必关心VB是如何实现的。
      

  3.   

    按于标记1中的变量lngInputSize,楼主可以在该变量上右键,然后选择“定义”看看到底有没有定义,我认为应该是定义了的,而且很有可能是一个全局的常量。