VB读取TXT文件中字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 09:11:57
TXT文件如下:
NF P
103 A
103 P
103 P
fbc A
fbc A
fbc P

把这两例数据读到两个数组array1(),array2()中去,因为数据中有数字又有字符,如果把变量定义为String的话,第一个变量读出的结果就会是"NF P"而不是“NF”,我想问一下,用什么方法可以使array1(1)的值是“NF”?
非常感谢,我用split函数写了一下,但是读出来a(i)仍然是整个第一行,而不是第一行第一例的字符,不知道是怎么回事,哪里出错了?
Dim s() As String, t() As String, a() As String, b() As String
Dim i As Integer
Open "D:\book3.txt" For Input As #1
s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close
ReDim a(UBound(s)), b(UBound(s))
For i = 0 To UBound(s)
t = Split(s(i), " ")
a(i) = t(0)
Print a(i)
b(i) = t(UBound(t))
Print b(i)
Next

Option Explicit

Private Sub Command1_Click()
Dim item, n As Integer, i As Integer
Dim array1(), array2()
Open "d:\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, item
i = InStr(item, " ")
ReDim Preserve array1(n)
ReDim Preserve array2(n)
array1(n) = Left(item, i - 1)
Print array1(n),
array2(n) = Right(item, Len(item) - i)
Print array2(n)
n = n + 1
Print
Loop
Close
End Sub

///////////////////////////////////////////////////////////////////////////////////
如果你的文本组后有空行,可能会造成下标越界,因此需要把最后的空行的vbcrlf字符替换掉,再去掉,综合代码如下,若有不明白的,可以ps我:

Option Explicit

Private Sub Command1_Click()
Dim s() As String, t() As String, a() As String, b() As String
Dim i As Integer, item, x
Open "D:\1.txt" For Input As #1
x = StrConv(InputB(LOF(1), 1), vbUnicode)
x = Replace(x, " ", "