读书人

vb中的字符处理。解决方法

发布时间: 2012-04-24 14:15:38 作者: rapoo

vb中的字符处理。
我需要在文本框内输入英文,然后对英文文本提取每个英文单词,根据每个单词都会空格的特点用split截句子取词,有的单词末尾有标点,把需把标点去掉。再将这些单词作为listbox中的选项。请问代码如何写?我弄的代码是:

VB code
Option Base 1Private Sub Command1_Click()    Dim b As Integer, a() As String, t As Integer, i As Integer, c As String, d As String    a = Split(Text1.Text, " "): c = "": d = ""    For t = 1 To UBound(a)        For i = 1 To Len(a(t))                b = Asc(Mid(a(t), i, 1))            If (b >= 65 And b <= 90) Or (b >= 97 And b <= 122) Then                d = d & Mid(a(t), i, 1)            ElseIf d <> "" Then                c = c & d & vbCrLf            End If        Next i    Next t    If d <> "" Then c = d & vbCrLf    Print cEnd Sub
只能达到输出单词的效果,而且输出的是一整个句子(词与词之间已无标点和空格)。

[解决办法]
思路:
1、定义一个动态的字符串数组
2、使用Split以空格键来拆分文本框中的字符串
3、检查数组中的每个元素的最后面一个字符是不是字母,如果不是,那么去除它
4、将处理过后的字符串数组,循环加入ListBox中
[解决办法]
那就这样吧
VB code
'---------------------------------------------------' 过程名    : sub2' 时间      : 2012-4-18 20:45' 作者      : 杨过.网狐.cn(csdn bcrun)' 功能      :' 说明      :' 备注      :'---------------------------------------------------'Private Sub sub2()    Dim b As Integer, a() As String, t As Integer, i As Integer, c As String, d As String    a = Split(Text1.Text, " "): c = "": d = ""    List1.Clear    For t = LBound(a) To UBound(a)        d = ""        For i = 1 To Len(a(t))                b = Asc(Mid(a(t), i, 1))            If (b >= 65 And b <= 90) Or (b >= 97 And b <= 122) Then                d = d & Mid(a(t), i, 1)            Else                If d <> "" Then Exit For            End If        Next i        If d <> "" Then            List1.AddItem d        End If    Next t    'If d <> "" Then List1.AddItem d    'Print cEnd Sub
[解决办法]
VB code
Private Sub Command1_Click()    Dim B() As Byte    Dim s As String    Dim a() As String    Dim i As Long        B = Text1    For i = 0 To UBound(B)        Select Case B(i)        Case 0        Case Is < 65, Is > 122, 91 To 96            B(i) = 32        End Select    Next        s = B    a = Split(s, " ")        For i = 0 To UBound(a)        If a(i) <> "" Then            List1.AddItem a(i)        End If    NextEnd Sub 

读书人网 >VB

热点推荐