菜鸟请教vb从任意txt文件中读入数组,能够在程序中确定数组大小
txt文件中数组大小已知
例如txt文件中数组为
-22 -17.7 -25.9 909.1 1.8 78 0 145.24
-26.7 -20.2 -29.6 910.5 3 77 0 314.25
-26.4 -18.8 -31.7 907.5 2.3 75 0 220.58
-25.9 -19 -31.6 910.6 1.8 76 0 317.33
-21.2 -14.2 -26.2 911.6 4.5 78 0 308.35
-21.8 -16.7 -25.7 912.3 4.3 79 0 320.86
-18.7 -11 -23 909.5 3.3 79 0 322.79
-18.7 -12.9 -22.2 908.1 4 77 0 216.06
-17.8 -14.1 -19.6 909.6 5.3 73 0 156.17
-16.9 -13.4 -21.8 907.7 5 75 0.6 230.01
-15 -10.3 -18.6 905.2 5.8 73 0 253.87
-17.5 -12.4 -22 905.2 2.3 78 0 222.2
-21 -15 -26.8 904.6 1.3 74 0 257.72
-22.9 -18.4 -27.4 905.9 4.3 73 0.1 225.68
-24.1 -16.7 -28.6 914.5 3 73 0 342.06
-23 -15.8 -29.9 913.6 3.3 76 0 287.17
Open "myfile.txt" For Input As #1
Do Until EOF(1)
Line Input #1, z
'st = Split(z, " ")
st = splipt(z, Chr(13) & Chr(10))
For j = 0 To 7: dat(i, j) = Val(st(j)): Next
i = i + 1
Loop
Close #
若数组未知大小,该如何读入,并确定其大小
[解决办法]
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
[解决办法]
TXT文件最后一行要有一空行(即最后一行要有一个回车键),否则会少读入一行。