各位高手,小弟是个菜鸟,在编程序时候遇到一个问题,就是text文档里的数据怎么读入到一个2*3的数组中去进行计算。我的数据格式是:
78,95
89,452
785,89
下面是我自己编的程序,可是实现起来有困难,各位高手请帮帮忙。
Private Sub Command1_Click()
Dim a(3) As String
Dim Str As String, LenStr As Integer
Dim j As Integer, k As Integer, m As Integer
      Str = Text1.Text
      LenStr = Len(Str)
      j = InStr(Str, Chr(10))
      Do While j > 0
      If j <> LenStr Then
        a(k) = Left(Str, j - 1)
        m = InStr(a(k), ",")
        ReDim DynCzd(0 To 3, 0 To 1)
        DynCzd(k, 0) = Val(Left(a(k), m - 1))
        DynCzd(k, 1) = Val(Mid(a(k), m + 1))
        'Debug.Print DynCzd(0, 0), DynCzd(0, 1)
        Str = Mid(Str, j + 1)
        k = k + 1
        j = InStr(Str, Chr(10))
        Else
           Resume
        End If
        Loop
        a(k) = Str
        m = InStr(a(k), ",")
        For j = 0 To k
       Debug.Print DynCzd(j, 0), DynCzd(j, 1)
       Text2.Text = DynCzd(j, 0) & "," & DynCzd(j, 1) & vbCrLf
       Next j
End Sub

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a 
    Dim Str As String, LenStr As Integer
    Dim j As Integer, k As Integer, m As Integer
          if right(str,2)=vbcrlf then
                str=left(str,len(str)-2)
          end if
          str=replace(str,vbcrlf,",")
          a=split(str,",")
          ReDim DynCzd(0 To 2, 0 To 1)      for i=lbound(a) to ubound(a)
               dynszd(i%3,i/2 )=a(i)
          next i       End Sub
      

  2.   

    我还是没弄清楚数据的最终得出,比如:
    78,95
    89,452
    785,89
    中的78对应的是dynczd(0,0)还是其他的
    还有我运行了一下,总是报下标越界、另外dynszd(i%3,i/2 )=a(i)中的“%”是不是应该改成“/”号?
    请再指教!
      

  3.   

    dynszd(i mod 2, i\2)=a(i)