继续问,VB,split函数

来源:百度知道 编辑:UC知道 时间:2024/05/07 16:05:54
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

我的TXT文件内容如下:
asfsd A
dfsdf A
dfsdwe A
12341 P
231w5 P
23157 P
23157 P
23157 P
23157 P
23157 A
23157 P
23176 P
23176 A
23176 P
我希望输出为:
asfsd A
dfsdf A
dfsdwe A
12341 P
231w5 P
23157 P
23157 P
23157 P
23157 P
23157 A
23157 P
23176 P
23176 A
23176 P

但实际上输出却为:
asfsd
A
dfsdf A
dfsdwe A
12341 P
12341 P
231w5 P
231w5 P
23157 P
23157 P
。。。。。。。。
就是说只有第一行能分开两个字符串,而第二行及以后都不

如果你的文本组后有空行,可能会造成下标越界,因此需要把最后的空行的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, " ", ",")
x = Replace(x, vbCrLf, " ")'反复替换,去掉最后的空行
x = Trim(x)
x = Replace(x, " ", vbCrLf)
s = Split(x, 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(1)
Print b(i)
Next
End Sub

Private Sub Command1_Click()
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