用VB设计开发“字符统计”程序
程序运行时,当在字符输入区中输入字符时,能实时统计出所输入各类型字符的数量。提示:(1)当文本框中的内容发生改变时,将触发Change事件,因此要实时统计则处理代码应写在...
程序运行时,当在字符输入区中输入字符时,能实时统计出所输入各类型字符的数量。
提示:
(1)当文本框中的内容发生改变时,将触发Change事件,因此要实时统计则处理代码应写在该文本框的Change事件过程中。
(2)程序原理:从第1位开始将所输入的字符串逐个截取,然后使用Select语句判断其字符类型,对应的字符类型数量+1。这里有多少个字符,则需要重复截取判断多少次,是一个循环的过程。
用DO、SELECT CASE、FOR、IF等语句或其组合 展开
提示:
(1)当文本框中的内容发生改变时,将触发Change事件,因此要实时统计则处理代码应写在该文本框的Change事件过程中。
(2)程序原理:从第1位开始将所输入的字符串逐个截取,然后使用Select语句判断其字符类型,对应的字符类型数量+1。这里有多少个字符,则需要重复截取判断多少次,是一个循环的过程。
用DO、SELECT CASE、FOR、IF等语句或其组合 展开
展开全部
Dim n As Integer
Private Sub Form_Load()
Text1.Text = ""
For n = 0 To 6 '清理其余六个文本框
Text2(n).Text = ""
Next n
For n = 0 To 6 '清理六个标签,并标注,按照需要标上就行了。
Label1(n).Caption = ""
Label1(n).Caption = "(" + Str(n) + ")" '标注时应该去掉这句,在循环外面标上。
Next n
End Sub
Private Sub text1_Change()
Dim Mynum As String
Dim i, j, m, s, p, h, l, w As Integer
n = 0: m = 0: s = 0: p = 0: h = 0: l = 0
i = Len(Text1.Text) '数一数字符总数
For j = 1 To i
Mynum = Mid(Text1.Text, j, 1) '一个一个地分析其Asc的值。
If asc(Mynum) < 0 Then '汉字的
n = n + 1
Text2(0).Text = Str(n)
End If
If 65 <= asc(Mynum) And asc(Mynum) <= 90 Or 97 <= asc(Mynum) And asc(Mynum) <= 122 Then '英文字母
m = m + 1
Text2(1).Text = Str(m)
End If
If 33 <= asc(Mynum) And asc(Mynum) <= 47 Then '英文符号
p = p + 1
Text2(2).Text = Str(p)
End If
If 48 <= asc(Mynum) And asc(Mynum) <= 57 Then '数字的
s = s + 1
Text2(3).Text = Str(s)
End If
If 128 <= asc(Mynum) And asc(Mynum) <= 255 Then '其它符号
h = h + 1
Text2(4).Text = Str(h)
End If
If asc(Mynum) = 32 Then '空格的
v = v + 1
Text2(5).Text = Str(v)
End If
Text2(6).Text = Str(i) '字符总数
Next j
If i = 0 Then Text2(6).Text = ""
If v = 0 Then Text2(5).Text = ""
If h = 0 Then Text2(4).Text = ""
If s = 0 Then Text2(3).Text = ""
If p = 0 Then Text2(2).Text = ""
If m = 0 Then Text2(1).Text = ""
If n = 0 Then Text2(0).Text = ""
End Sub
'几天前,曾把Mid(Text1.Text, j, 1)写成了:Mid(Text1.Text, i, 1),始终看不出来,实验总有问题,所以答案不能出手。今已改正没问题了。
Private Sub Form_Load()
Text1.Text = ""
For n = 0 To 6 '清理其余六个文本框
Text2(n).Text = ""
Next n
For n = 0 To 6 '清理六个标签,并标注,按照需要标上就行了。
Label1(n).Caption = ""
Label1(n).Caption = "(" + Str(n) + ")" '标注时应该去掉这句,在循环外面标上。
Next n
End Sub
Private Sub text1_Change()
Dim Mynum As String
Dim i, j, m, s, p, h, l, w As Integer
n = 0: m = 0: s = 0: p = 0: h = 0: l = 0
i = Len(Text1.Text) '数一数字符总数
For j = 1 To i
Mynum = Mid(Text1.Text, j, 1) '一个一个地分析其Asc的值。
If asc(Mynum) < 0 Then '汉字的
n = n + 1
Text2(0).Text = Str(n)
End If
If 65 <= asc(Mynum) And asc(Mynum) <= 90 Or 97 <= asc(Mynum) And asc(Mynum) <= 122 Then '英文字母
m = m + 1
Text2(1).Text = Str(m)
End If
If 33 <= asc(Mynum) And asc(Mynum) <= 47 Then '英文符号
p = p + 1
Text2(2).Text = Str(p)
End If
If 48 <= asc(Mynum) And asc(Mynum) <= 57 Then '数字的
s = s + 1
Text2(3).Text = Str(s)
End If
If 128 <= asc(Mynum) And asc(Mynum) <= 255 Then '其它符号
h = h + 1
Text2(4).Text = Str(h)
End If
If asc(Mynum) = 32 Then '空格的
v = v + 1
Text2(5).Text = Str(v)
End If
Text2(6).Text = Str(i) '字符总数
Next j
If i = 0 Then Text2(6).Text = ""
If v = 0 Then Text2(5).Text = ""
If h = 0 Then Text2(4).Text = ""
If s = 0 Then Text2(3).Text = ""
If p = 0 Then Text2(2).Text = ""
If m = 0 Then Text2(1).Text = ""
If n = 0 Then Text2(0).Text = ""
End Sub
'几天前,曾把Mid(Text1.Text, j, 1)写成了:Mid(Text1.Text, i, 1),始终看不出来,实验总有问题,所以答案不能出手。今已改正没问题了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询