vb如何提取每行文本中的特定字符,存入数组?

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:24:17
如何提取每行文本中的特定字符,存入数组?

文本如下
ltxt"="语文 78 数学 80 政治 78 英语 91"
将"语文","数学","政治","英语"提取出来,存入数组Kmstr()
并提取数字,存入数组Numstr(),写成函数形式,并举例应用.

非常感谢!
但提取数字好象有点不妥,只提取出三个数字,91没有提取出来

再次感谢!
在每行文本中,可能出现下面这些词,

鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 猪 '作为变量ShengxiaoStr
金 木 水 火 土 '作为变量WuxingStr
大 小 '作为变量BigOrLitStr
红 绿 蓝 '作为变量ColorStr
如:
36牛23虎蓝木
32蛇13鼠红水
11狗35虎绿木

将每行中出现的上面这些高频词提取出来。
问题补充:将鼠 ,牛 ,虎 ,兔 ,龙 ,蛇 ,马 ,羊 ,猴 ,鸡 ,猪 ,
金 木 水 火 土
大 小
红 绿 蓝
作为一个词库当然这些小数据不用数据库,如果在文本中找到它,就提取出来.按变量存取.
再加十分。

其实这个'GetType=0取汉字,1取非汉字, 2取字母,3取数字
中,应该再加一个"4所有类型",分离结果如下:
nStr="中国CP 32 89 @#$人民 11>9"
Zu(1)="中国"
Zu(2)="CP"
Zu(3)="32"
Zu(4)="89"
Zu(5)="@#$"
Zu(6)="人民"
Zu(7)="11" <

你的想法很好,给了我启示。我做了如下修改,提取方式 0 到 9,共 10 种:
Private Sub Command1_Click()
Dim nStr As String, Zu(), Ge As Long, I As Long
Static GetType As Long

nStr = "中国CP 32 89 @#$人民 11>9"
GetType = GetType + 1
If GetType > 9 Then GetType = 0

'提取指定类型的字符,存入数组 Zu(),第三个参数表示提取类型:可取 0 到 9
Ge = GetZu(nStr, Zu, GetType, True)

'将找到的结果显示到窗体,共 Ge 个
Me.Cls: Me.Print nStr & vbCrLf & "----提取方式 " & GetType & " 的结果:"
For I = 1 To Ge
Me.Print Zu(I)
Next
End Sub

Private Function GetZu(nStr As String, Zu As Variant, Optional GetType As Long, Optional SaveSpace As Boolean) As Long
'查找和提取特定字符,并存入数组 Zu()
'GetType 的用法,基本类型: 1数字,2字母,3汉字,4英文符号
' 混合类型: 0所有类型,5非汉字,6数字和字母,7字母和符号,8字母和汉字,9数字和汉字
'SaveSpace=False 表示去掉空格,GetType=0 时有效

Dim I As Long, Str1 As String, FindS As Long, Ge As Long
Dim S As Long, nType As Long,