Dim i, j, s1 As String, s2 As String, num As Byte
Dim a() As String, tj As String
a = Split(Text3.Text, vbNewLine)
For i = 0 To UBound(a)
s1 = Trim$(a(i))
num = 0
If s1 <> "" And InStr(s1, " ") = 0 Then
For j = i + 1 To UBound(a)
s2 = Trim(a(j))
If Left(s2, Len(s1)) = s1 Then
If num < 255 And InStr(s2, " ") > 0 Then num = num + 1
Else
Exit For
End If
Next
tj = tj & s1 & " " & num & vbNewLine
End If
Next
Text4.Text = tj
这个代码是检先查出,文本文档里拼音后面没有文字的拼音,然后算出以它开头的拼音后面的文字个数,只检查拼音后没文字的,并在结果里显示出来,有文字的就不显示,比如文档里内容如下:
b
ba 把
ban
bang 帮
c
ch
chu
chua
chuang创
chuai 踹
co
con
cong 聪
cou 凑
结果是:
b 2
ban 1
c 3
ch 1
chu 1
chua 1
chuang创 0
co 2
con 1
b开头的拼音有3个,文字有2个就在b后面显示2.ba后面有字就不显示在结果里。就是chuang这里不知道怎么了出毛病,它应该不显示在结果里的。这个是我自己弄得,不知道哪里错了!!
Dim a() As String, tj As String
a = Split(Text3.Text, vbNewLine)
For i = 0 To UBound(a)
s1 = Trim$(a(i))
num = 0
If s1 <> "" And InStr(s1, " ") = 0 Then
For j = i + 1 To UBound(a)
s2 = Trim(a(j))
If Left(s2, Len(s1)) = s1 Then
If num < 255 And InStr(s2, " ") > 0 Then num = num + 1
Else
Exit For
End If
Next
tj = tj & s1 & " " & num & vbNewLine
End If
Next
Text4.Text = tj
这个代码是检先查出,文本文档里拼音后面没有文字的拼音,然后算出以它开头的拼音后面的文字个数,只检查拼音后没文字的,并在结果里显示出来,有文字的就不显示,比如文档里内容如下:
b
ba 把
ban
bang 帮
c
ch
chu
chua
chuang创
chuai 踹
co
con
cong 聪
cou 凑
结果是:
b 2
ban 1
c 3
ch 1
chu 1
chua 1
chuang创 0
co 2
con 1
b开头的拼音有3个,文字有2个就在b后面显示2.ba后面有字就不显示在结果里。就是chuang这里不知道怎么了出毛病,它应该不显示在结果里的。这个是我自己弄得,不知道哪里错了!!
c=3 还是应该 c=6?
ch=1 还是应该 ch=3?
chu=1 还是应该 chu=2?
以上这些问题与你一下描述的不一样呀
“这个代码是检先查出,文本文档里拼音后面没有文字的拼音,然后算出以它开头的拼音后面的文字个数,只检查拼音后没文字的,并在结果里显示出来,有文字的就不显示”
Dim i As Integer, j As Integer, s1 As String, s2 As String, num As Byte
Dim a() As String, tj As String = ""
a = Split(TextBox1.Text, vbNewLine)
For i = 0 To UBound(a) - 1
s1 = Trim$(a(i))
num = 0
If s1 <> "" And InStr(s1, " ") = 0 Then
For j = i + 1 To UBound(a)
s2 = Trim(a(j))
If Strings.Left(s2, Len(s1)) = s1 Then
If num < 255 And InStr(s2, " ") > 0 Then num = num + 1
Else
Exit For
End If
Next
tj = tj & s1 & " " & num & vbNewLine
End If
Next
TextBox2.Text = tj
我们来浓缩一下你的程序代码:For i = 0 To UBound(a) - 1
s1 = Trim$(a(i))
num = 0
If s1 <> "" And InStr(s1, " ") = 0 Then
tj = tj & s1 & " " & num & vbNewLine
End If
Next
是不是只要s1是个没有空格的字符串就会显示在结果中!
你可以去试试
你想区别英文字符与汉字字符的话,可以用Asc函数,
如 Asc("g")=103
Asc("创")=-19276其实,只要是负值的Asc码,就一定是汉字字符
在你的代码判断空格的基础上再添加判断汉字字符的条件,你的问题就有解了
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer, j As Integer, s1 As String, s2 As String, num As Byte
Dim a() As String, tj As String = ""
a = Split(TextBox1.Text, vbNewLine)
For i = 0 To UBound(a) - 1
s1 = Trim$(a(i))
num = 0
If s1 <> "" And InStr(s1, " ") = 0 And NotPY(s1) = False Then
For j = i + 1 To UBound(a)
s2 = Trim(a(j))
If Strings.Left(s2, Len(s1)) = s1 Then
If num < 255 And InStr(s2, " ") > 0 Then num = num + 1
Else
Exit For
End If
Next
tj = tj & s1 & " " & num & vbNewLine
End If
Next
TextBox2.Text = tj End Sub
Private Function NotPY(ByVal Temp As String) As Boolean
Dim B As Char
If Temp <> "" Then
For t% = 1 To Strings.Len(Temp)
B = Mid(Temp, t, 1)
If LCase(B) < "a" Or LCase(B) > "z" Then
NotPY = True
Exit Function
End If
Next
NotPY = False
End If
End Function
相信,这样也不是你最终的代码,因为运行结果不是你想要的另外给你提供一个思路
把数组a的每个字符串检查一遍
让软件在“chuang创”之间添加一个空格。
代码很简单,你动手试试。