如下:
   Dim mwcumefactor(3) As String * 140
   Open  "c:\arbmwc.dat" For Random Shared As #4 Len = 140
   For j = 1 To 3
      mwcumefactor(j) = String(140, " ")
      Get 4, j, mwcumefactor(j)
   Next
   Close 4   当运行这段程序到循环里面,j=3得时候就会出错。run-time error '59',bad record length.
arbmwc文件大小是420字节。希望达人能帮看看是怎么回事呢?怎么修改?谢谢!!

解决方案 »

  1.   

    For j = 0 To 2
          mwcumefactor(j) = String(140, " ")
          Get 4, j, mwcumefactor(j)
       Next
      

  2.   

    这与文件大小没有关系,你把mwcumefactor(3)的长度定义小一点试试:
    Dim mwcumefactor(3) As String * 100
      

  3.   

    长度改小了好像是没问题了,但是文件不是没读全吗?
       好像是只读了300字节啊。faysky2() 能再解释得详细一点吗?谢谢了 。
      

  4.   

    记录号记得是从1开始吧。lz 没有错。
    看lz的程序。似乎不是预期想象的效果。
       Dim mwcumefactor As String * 420
       Open  "c:\arbmwc.dat" For Random Shared As #4
          mwcumefactor = String(420, " ")
          Get 4, , mwcumefactor
       Close 4
    你干脆这样试试。全部取回来了再来分3份。
      

  5.   

    在我的机子上试了LZ的代码,没有错误,却不知道是什么原因如果LZ只想读取前面420个字符,然后分成多个等长才字符串放到数组rlt()里,可以改成这样这样:
       
       Const size As Long = 420 '定义读取的长度
       Dim mwcumefactor As String * size, rlt() As String
       Open "c:\11.txt" For Random Shared As #4 Len = size
          mwcumefactor = Space(size)
          Get #4, , mwcumefactor
       Close #4
       ReDim rlt(Int(size / 140))
       For i = 0 To UBound(rlt)
          rlt(i) = Mid(mwcumefactor, i * 140 + 1, 140)
          Debug.Print rlt(i)
       Next