下面我们来看看代码: 在General 里声明窗体级变量: Dim Level As Integer
Private Sub Command1_Click() Unload Me End Sub
Private Sub Text1_Change()
Dim StrLength As Integer’字符串长度 Dim RandomNum As Single’随机数 Dim Str1 As String Dim a As String Dim i, Temp
StrLength = 0’每次开始时把字符串长度还原为0 a = Text1.Text
For i = 1 To Len(a)’Len(a)代表字符串的长度 Temp = Asc(Mid$(a, i, 1))’挨个取字符 If Temp > 255 Or Temp < 0 Then’不是ASC码 StrLength = StrLength + 2 Else
StrLength = StrLength + 1 End If Next i
46
StrLength = StrLength / 2 Select Case StrLength Case 0 To 9
Picture1.Visible = True Picture2.Visible = False Picture3.Visible = False
Label2.Caption = \慢慢说。你还有\个字可以说\Level = 1 Case 10 To 19 If Level = 1 Then
RandomNum = Rnd * 10’得到随机数
If RandomNum <= 10 And RandomNum > 9 Then Text1.Enabled = False
Label2.Caption = \很抱歉这是个误会??\ Command1.Visible = True
Command1.Caption = \您可以离开了\End If Level = 2 Else
Picture1.Visible = False Picture2.Visible = True Picture3.Visible = False Str1 = \怎么还没说完!\
47
Label2.Caption = Str1 & \你还有\个字可以说\End If Case 20 To 29 If Level = 2 Then RandomNum = Rnd * 10
If RandomNum <= 10 And RandomNum > 9 Then Text1.Enabled = False
Label2.Caption = \很抱歉这是个误会??\ Command1.Visible = True
Command1.Caption = \您可以离开了\End If Level = 3 Else
Picture1.Visible = False Picture2.Visible = False Picture3.Visible = True Str1 = \我已经不耐烦了!\
Label2.Caption = Str1 & \你还有\以说\End If Case Else
Text1.Enabled = False
Label2.Caption = \你已经没有机会了!\Command1.Visible = True
个字可48
Command1.Caption = \交钱吧,肇事犯!\End Select End Sub
中间有几个函数需要解释一下:
Mid可以从字符串中取出一部分,返回字符型,格式: Mid(字符串,从第几个字符开始,取字符的长度) Asc可以把字符转换为ASCII码,格式: Asc(字符串)
Rnd,取得大于0但小于1 的数值,可以没有参数。
怎么样,十分简单吧,我们将在下一次继续讨论VB的输入机制! 在继续上面的内容时,我想再回顾和强调几个在字符串操作中经常函数:
先是几个已经接触过的,Mid(),Asc(),Len(),它们的语法分别是: Mid(字符型,起始字符,长度)
返回子字符串,如果从字符串的第一个字符取起,起始字符为1,依此类推。
49
Asc(字符型)
返回数值,如果参数不是一个字符,而是字符串(多个字符),将返回参数的第一个字符ASCII值。 Len(字符型)
返回字符串的长度。
下面我再为你解释几个新的函数: Left(字符串,长度)
将返回字符型,从字符串的第一个字符向左取字符串,与之相对应的是Right(),它将从字符串的最后一个字符向右取字符串。 Chr(数值型)
该数值范围从0-255,返回字符型,如Chr(65)可返回字符“A”,这样可以输入一些用键盘无法输入的字符。 Str(数值型)
该函数把数值型转换为字符型,也许你觉得数值“123”和字符串“123”没什么区别,但在内存中一个ASCII字符是占一个字节,也就是说字符串“123”占3个字节,而当数值“123”是整型时,它占两个字符,当它是长整型时,占4个字节。与之向对应的是Val(数值型),它把数值型转换为字符型。
上面的函数都是以后要经常用到的,请将它们熟悉。
上次讲到文本框的用处,还有意思吗?你是否能把上次的程序稍稍变动一下,来计算出输入的单词数,提示一下,单词与单词之间是用空格分隔开的。
输入不仅仅是向文本框输入字符,凡是从外界向程序传递数据都可以叫做输入,我们一一说明白。
无线钮,记得我们曾在第一章中完成过我们的第一个程序――“Hello World!”它就是一种输入的方法,在设计VB程序时可以通过一组这样的无线钮,它们之间互相排斥,也就是说,只能有一个按钮被选中。它因为很象无线电收音机上的按钮因而得名无线钮。如果要在一个窗体内放置多组无线钮必须用Frame控件把它们区分开来。下面我们在来完成一个例子,顺便熟悉一下另外两个处理字符串的函数――LTrim()和Rtrim(),它们分
50