Dim bytRead() As ByteOpen strImagename For Binary As intReadFile   'open the image data as binaryInput #intReadFile, bytReadintMsg = MsgBox("The data had been readed")Com4Image.PortOpen = False
Com4Image.PortOpen = True之前的都没有问题,从下面开始Com4Image.Output = bytRead  '这句运行时出现错误'实时错误13'的提示,注析掉以后下一句也要出错intReadLen = UBound(bytRead) - LBound(bytRead) + 1 '在这里出的问题,提示下标越界我的目标是从一个.dat文件中把里面的16进制数读出来,然后每次发送32个字符
但是我试了好多次,只有读取一个比较短的字符串文件是成功的,读取BYTE类型的时候老是提示下标越界
请各位高人指点!

解决方案 »

  1.   

    bytRead没有声明大小,也没有用Redim再分配大小。
      

  2.   

    在把文件内存读取到数组之前,先用LEN计算文件大小,再REDIM数组长度,就可以了
      

  3.   

    LEN还是LOF忘记了,呵呵,楼主自己查MSDN看看
      

  4.   

    是FILELEN,嘿嘿,这个问题解决了
    谢谢哦
    不过,有点不明白,数组不定义长度的话,就是任意长度啊
    为什么必须重新定义呢?
      

  5.   

    有时是隐式定义的 但不表示没有定义长度
    dim a() as byte,s as string
    s="abcdef"
    a=s
    在执行a=s操作时 就隐式重定义了 redim a(11)另外
    Open   strImagename   For   Binary   As   intReadFile
    是不是应该
    Open   strImagename   For   Input   As   intReadFile
      

  6.   

    Oh my god~~~~~~~~~~~~~~~~~~
    二进制操作,居然可以用input来输入数据(我看你的程序像是在读出到变量,而不是写入文件.)?我倒是没见过~~~~我孤陋了~~~~
    还是说你这个Input是一个自己定义的函数或者过程?