本帖最后由 suuuuuu007 于 2012-03-14 10:24:20 编辑

解决方案 »

  1.   


    Private Sub Command1_Click()
       Open "c:\11.txt" For Binary As #1
       Dim iStr As String, i As Integer, j As Integer
       Dim iArr() As Single, iRow() As String, iCol() As String
       
       iStr = StrConv(InputB(LOF(1), 1), vbUnicode)
       iRow = Split(iStr, vbCrLf)
       iCol = Split(iRow(0))
       ReDim iArr(UBound(iRow), UBound(iCol))
       For i = 0 To UBound(iRow)
           iCol = Split(iRow(i))
           For j = 0 To UBound(iCol)
               iArr(i, j) = iCol(j)
           Next
       NextEnd Sub
      

  2.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim Filenumber As Long, fByte() As Byte, S As String
        Dim lRow As Long, lCol As Long '用来保存行数、列数
        Dim sA() As String, sB() As String, Dat() As String
        Dim i As Long, j As Long
        Filenumber = FreeFile
        Open "c:\myfile.txt" For Binary As #Filenumber
        ReDim fByte(0 To LOF(Filenumber) - 1)
        Get #Filenumber, , fByte
        Close #Filenumber
        S = StrConv(fByte, vbUnicode)
        sA = Split(S, vbCrLf)
        lRow = UBound(sA) '取得行数
        sB = Split(sA(0), " ")
        lCol = UBound(sB) + 1 '取得列数
        ReDim Dat(0 To lRow - 1, 0 To lCol - 1)
        For i = 0 To lRow - 1
            sB = Split(sA(i), " ")
            For j = 0 To lCol - 1
                Dat(i, j) = sB(j) '最后的2维数组
                Debug.Print Dat(i, j),
            Next
            Debug.Print vbCrLf
        Next
    End Sub
      

  3.   

    TXT文件最后一行要有一空行(即最后一行要有一个回车键),否则会少读入一行。
      

  4.   

    把文本文件当作 JetEngine 的外部数据库来读,可能更方便。如果希望用作数组,可以用记录集的 GetRows 方法将记录集转为二维数组。
      

  5.   

    楼上这段在vb报错
    ReDim fByte(0 To LOF(Filenumber) - 1)
    这是为什么?
      

  6.   

    本帖最后由 bcrun 于 2012-03-17 20:42:50 编辑
      

  7.   

    我将ReDim fByte(0 To LOF(Filenumber) - 1)
    改为ReDim fByte(0 To LOF(Filenumber))
    就可以识别了,是不是vb本身的原因呢?