VB怎么去检查一个文本文件中每排的指定字符串前的数字
如下列文本内容1.《你好》你好简介2.《这是个测试》测试简介3.《。。。》。。。简介......我需要每次读取到这个txt文本文件里的“.”前的最大数字,如上述三排例子,...
如下列文本内容
1.《你好》
你好简介
2.《这是个测试》
测试简介
3.《。。。》
。。。简介
......
我需要每次读取到这个txt文本文件里的“.”前的最大数字,如上述三排例子,我需要读取到“3”。只读取在每行最前面的数字,不读取字符中间的最大数。
我的想法是读取每行的字符存放在变量里,然后检查这个变量首部是不是数字+“.”结尾,如果是就检查是不是最大数字,如果是,就输出。 展开
1.《你好》
你好简介
2.《这是个测试》
测试简介
3.《。。。》
。。。简介
......
我需要每次读取到这个txt文本文件里的“.”前的最大数字,如上述三排例子,我需要读取到“3”。只读取在每行最前面的数字,不读取字符中间的最大数。
我的想法是读取每行的字符存放在变量里,然后检查这个变量首部是不是数字+“.”结尾,如果是就检查是不是最大数字,如果是,就输出。 展开
1个回答
展开全部
Private Sub Command1_Click()
Dim RegExp As Object, Matches As Object, Match%, t$, s$, n%(), tmp$(), List%, save%, total%, max%, result$
Set RegExp = CreateObject("vbscript.regexp")
t = Text1.Text
With RegExp
.Global = -1: .MultiLine = -1
.Pattern = "^(\d*)\.(.*)"
Set Matches = .Execute(t)
s = .Replace(t, "#$2")
s = Right(s, Len(s) - 1)
tmp = Split(s, "#")
total = Matches.Count - 1
ReDim n(total)
For Match = 0 To total
n(Match) = Matches(Match).submatches(0)
save = n(0)
For List = 0 To UBound(n)
If n(List) > save Then save = n(List): max = List
Next
Next
result = save & "." & tmp(max)
MsgBox result
End With
End Sub
Private Sub Form_Load()
Dim s
s = "1.《你好》" & vbCrLf & _
"你好简介" & vbCrLf & _
"2.《这是个测试》" & vbCrLf & _
"测试简介 " & vbCrLf & _
"50.《我的测试》" & vbCrLf & _
"我的测试123" & vbCrLf & _
"3.《。。。》" & vbCrLf & _
"???简介"
Text1 = s
End Sub
新建一个工程,然后测试如上示范代码可得出指定数据,读取文件部分你自己写吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询