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