想实现这么一个功能,假设有一个文本文件file1.txt,里面的内容假设如下:
123  234  456  abc  def
234  1024  2345  2222  aaaa每一行字符间用TAB分隔符分开。
现在有定义一个二维数组 a(1,4)
 
现在想问的是如何用VB读取这个文本文件,并且给数组一一赋值。或者也可以这样,现在想对应地给a(1,2)赋值2345,该怎么做?

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a(1, 4) As IntegerOpen "file1.txt" For Input As #1
     Do Until EOF(1)
       For i = 0 To 1
          For j = 0 To 4
         ' Debug.Print a(0, 2)
            Input #1, a(i, j)
          Next j
       Next i
     Loop
    Close #1
    Debug.Print a(1, 2) '在这里可以看到你要求的值已经实现了
    End Sub
      

  2.   

    Dim a() As String
    Sub fuzhi()
    Dim mybyte() As Byte, temp, i As Long, j As Long, x1 As Long, x2 As Long
    Open App.Path & "\file1.txt" For Binary As #1
    ReDim mybyte(LOF(1))
    Get #1, , mybyte
    Close #1
    temp = Split(StrConv(mybyte, vbUnicode), vbCrLf)
    x1 = UBound(temp)
    x2 = UBound(Split(temp(0), vbTab))
    ReDim a(x1, x2)
    For i = 0 To x1
    For j = 0 To x2
    a(i, j) = Split(temp(i), vbTab)(j)
    Next
    Next
    Set temp = Nothing
    End SubPrivate Sub Command1_Click()
    fuzhi
    MsgBox a(1, 2)
    End Sub
      

  3.   

    呵呵,,借楼上的代码一用!!
    Private Sub Command1_Click()
    Dim A(1, 4) As String, I As Integer, J As Integer
    Dim strTmp As String, strArr() As StringOpen "C:\Test.txt" For Input As #1
        Do Until EOF(1)
            For I = 0 To 1
                Line Input #1, strTmp
                strArr = Split(strTmp, "  ")
                For J = 0 To 4
                    A(I, J) = strArr(J)
                Next J
            Next I
        Loop
    Close #1
    MsgBox A(1, 2) '在这里可以看到你要求的值已经实现了
    End Sub
      

  4.   

    Dim i As Long, j As Long
        Dim strCon As String
        Dim strAryTmp() As String, strAry() As String, strAryT(10, 4) As String
        
        Open "C:\aa.txt" For Input As #1
        strCon = StrConv(InputB(LOF(1), #1), vbUnicode)
        Close #1
        
        strAry = Split(strCon, vbCrLf)
        For i = 0 To UBound(strAry)
            strAryTmp = Split(strAry(i), vbTab)
            For j = 0 To UBound(strAryTmp)
                strAryT(i, j) = strAryTmp(j)
            Next
        Next