Visual Basic程序设计与应用教程
上QQ阅读APP看书,第一时间看更新

3.4 常用内部函数

Visual Basic为编程人员提供了各种函数,应用于程序设计中,通常把Visual Basic中提供的函数称为内部函数,编程人员在应用程序中可以直接调用内部函数。同时Visual Basic还允许编程人员根据需要自己定义函数,以实现特定的功能,自定义函数将在本书的第6章讲解。

函数能够实现数据运算或转换等功能,每个函数都有且必须有一个结果,称为函数值或返回值。调用函数通常用函数名加一对圆括号,并在括号内给出参数,函数调用的一般格式为:

函数名([<参数表>])

其中,有些函数在调用时不需要给出参数。

Visual Basic中,函数大致可以分为数值函数、字符函数、转换函数、日期函数、格式输出函数等。

3.4.1 数值函数

数值函数的参数和返回值通常也是数值型数据,这里只介绍本教程中常用的数值类函数。

1.绝对值函数Abs()

格式:

Abs(数值表达式)

功能:求数值表达式的绝对值。

例如,在立即窗口中输入命令:

? Abs(-34)

输出结果为:

34

2.平方根函数Sqr()

格式:

Sqr(数值表达式)

功能:求数值表达式的平方根,数值表达式的值必须大于等于0。

例如,在立即窗口中输入命令:

? Sqr(9)

输出结果为:

3

3.符号函数Sgn()

格式:

Sgn(数值表达式)

功能:根据数值表达式值的范围不同,输出不同的值。如果数值表达式的值大于0,则函数值为1;如果数值表达式的值等于0,则函数值为0;如果数值表达式的值小于等于0,则函数的值为-1。

例如,在立即窗口中输入命令:

? Sgn(-9)

输出结果为:

-1

4.随机数函数Rnd()

格式:

Rnd()

功能:产生大于等于0但小于1的双精度型随机数,括号可以省略。

例如,在立即窗口中输入命令:

? Rnd

输出结果为0到1之间的小数,每次结果都不同。如果要产生一定范围内的随机整数,可以根据下面表达式得到需要范围内的整数。

Int(Rnd * <上界-下界+ 1> +下界)

例如,要产生50~100之间的整数,则上界是100,下界是50,表达式为:

Int(Rnd * 51 + 50)

为了保证每次运行时产生不同序列的随机数,需要在调用Rnd函数之前先执行Randomize语句。

格式:

Randomize

5.取整函数

取整函数包括Int()、Fix()、Round()。

格式:

功能:Int返回不大于数值表达式的最大整数;Fix返回数值表达式的整数部分;Round对数值表达式的值四舍五入取整。

例如,在立即窗口输入下面命令:

?Int(-45.6)

输出结果为:

-46

输入命令:

?Fix(-45.6)

输出结果为:

-45

输入命令:

?Round(-45.6)

输出结果为:

-46

3.4.2 字符函数

字符函数实现了对于字符或字符串进行操作的函数,函数返回值的类型可能是字符型、数值型或逻辑型等。

1.取子串函数

取子串函数包括取左子串函数Left()、取右子串函数Right()和取子串函数Mid()。

(1)取左子串函数Left()

格式:

Left(<字符表达式>, <数值表达式>)

功能:从<字符表达式>的左部取<数值表达式>指定的若干字符。其中,<字符表达式>的值是字符串,<数值表达式>的值是正整数。

例如,在立即窗口输入下面命令:

?Left("Information",5)

输出结果为:

Infor

(2)取右子串函数Right()

格式:

Right(<字符表达式>, <数值表达式>)

功能:从<字符表达式>的右部取<数值表达式>指定的若干的值是字符串,<数值表达式>的值是正整数。

例如,在立即窗口输入下面命令:

?Right("Information",4)

输出结果为:

tion

(3)取子串函数Mid()

格式:

mid(<字符表达式>, <数值表达式1> [, <数值表达式2>])

功能:在<字符表达式>中,从<数值表达式1>指定位置开始取<数值表达式2>个字符,组成一个新的字符串。其中,<字符表达式>的值是字符串,<数值表达式1>是指定取子串位置的正整数,<数值表达式2>是指定所取子串长度的正整数。数值表达式2可以省略,表示从数值表达式1指定位置一直取到字符串的末尾。

例如,在立即窗口输入下面命令:

?Mid("Information",4,2)

输出结果为:

or

输入命令:

? Mid("Information",6)

输出结果为:

mation

2.求字符串长度函数Len()

格式:

Len(<字符表达式>)

功能:计算字符串的长度,中文字符和西文字符都按一个字符计算。

例如,在立即窗口输入下面命令:

?Len("Information世界")

输出结果为:

13

3.求子串位置函数InStr()

格式:

InStr (<字符表达式1>, <字符表达式2>)

功能:在<字符表达式1>中查找<字符表达式2>出现的位置,如果<字符表达式2>没有在<字符表达式1>中出现,则返回0。

例如,在立即窗口输入下面命令:

?Instr("Information", "for")

输出结果为:

3

又如,在立即窗口输入下面命令:

?InStr("for", "Information")

输出结果为:

0

4.子串替换函数Replace()

格式:

Replace(<字符表达式1>, <字符表达式2>, <字符表达式3>)

功能:在<字符表达式1>中,用<字符表达式3>替换<字符表达式2>。

例如,在立即窗口输入下面命令:

?Replace ("Infomation", "fo", "FOR")

输出结果为:

InFORmation

5.空格字符串生成函数Space()

格式:

Space(<数值表达式>)

功能:生成<数值表达式>个空格组成的字符串。

例如,在立即窗口输入下面命令:

?"S" + Space(5) + "S"

输出结果为:(用表示空格,在屏幕中不显示)

SS

6.产生重复字符函数String()

格式:

String(<数值表达式>, <字符表达式>)

功能:产生由字符表达式第1个字符重复构成的字符串,<数值表达式>给出了要产生的字符个数。

例如,在立即窗口输入下面命令:

?String(5, "*")

输出结果为:

*****

又如,在立即窗口输入下面命令:

?String(3, "A*")

输出结果为:

AAA

7.删除字符串空格函数

(1)删除字符串首尾部空格函数Trim()

格式:

Trim(<字符表达式>)

功能:删除<字符表达式>首部和尾部的空格。

例如,在立即窗口输入下面命令:

?"S" + TRIM("Information") + "S"

输出结果为:

SInformationS

(2)删除字符串首部空格函数Ltrim()

格式:

Ltrim(<字符表达式>)

功能:删除<字符表达式>首部的空格。

例如,在立即窗口输入下面命令:

?"S" + Ltrim("Information") + "S"

输出结果为:

SInformationS

(3)删除字符串尾部空格函数Rtrim()

格式:

Rtrim(<字符表达式>)

功能:删除<字符表达式>尾部的空格。

例如,在立即窗口输入下面命令:

?"S" + Rtrim("Information") + "S"

输出结果为:

SInformationS

8.英文字母大小写转换函数

(1)小写字母转换为大写字母函数Ucase()

格式:

Ucase (<字符表达式>)

功能:将字符串中的所有小写字母转换为大写字母。

例如,在立即窗口输入下面命令:

? Ucase ("Information")

输出结果为:

INFORMATION

(2)大写字母转换为小写字母函数Lcase()

格式:

Lcase (<字符表达式>)

功能:将字符串中的所有大写字母转换为小写字母。

例如,在立即窗口输入下面命令:

? Lcase ("InforMation")

输出结果为:

information

3.4.3 转换函数

转换函数为Visual Basic数据处理提供了方便,本节主要介绍常用的字符和ASCII码值的转换函数以及数值和字符串的转换函数。

1.将字符转换成ASCII码值函数Asc()

格式:

Asc(<字符表达式>)

功能:给出<字符型表达式>最左边字符的ASCII码值。

例如,在立即窗口输入下面命令:

?Asc("C")

输出结果为:

67

2.将ASCII码值转换成字符函数Chr()

格式:

Chr(<数值表达式>)

功能:将<数值型表达式>的值作为ASCII码,给出其所对应的字符。

例如,在立即窗口输入下面命令:

?Chr(67)

输出结果为:

C

3.数值型数据转换为字符型数据函数Str()

格式:

Str(<数值表达式>)

功能:将<数值表达式>值的类型由数值型转换为字符型。

例如,在立即窗口输入下面命令:

?Str(3.1415926)

输出结果为:

3.1415926

4.字符串转换为数值函数Val()

格式:

Val(<字符表达式>)

功能:将字符串前面符合数值型数据要求的数字字符转换为数值型数据。如果字符串前面无数字字符,则转换结果为0。

例如,在立即窗口输入下面命令:

?Val("3.1415是π的值")

输出结果为:

3.1415

3.4.4 日期时间函数

通过日期时间函数,可以获得与计算机系统的日期和时间相关的数据。

1.系统日期函数Date()

格式:

Date()

功能:返回所用计算机系统的当前日期,返回值的类型为日期型数据,函数的括号可以省略。

2.系统时间函数Time()

格式:

Time()

功能:返回所用计算机系统的当前时间,返回值的类型为日期型数据,函数的括号可以省略。

3.系统日期时间函数Now()

格式:

Now()

功能:返回系统当前的日期和时间,返回值类型为日期型数据,函数的括号可以省略。

4.年份函数Year()

格式:

Year(<参数>)

功能:取日期型或日期时间型数据对应的年份,返回值为整数数值,参数为日期型数据。

例如,在立即窗口输入下面命令:

Y = #2014/03/23#

?Year(Y)

输出结果为:

2014

5.月份函数Month()

格式:

Month(<参数>)

功能:取日期型数据对应的月份,返回值为整数数值,参数为日期型数据。

例如,在立即窗口输入下面命令:

Y = #2014/03/23#

?Month(Y)

输出结果为:

3

6.天数函数Day()

格式:

Day(<参数>)

功能:取日期型数据对应月份的第几天,返回值为整数数值(N),参数为日期型数据。

例如,在立即窗口输入下面命令:

Y = #2014/03/23#

?Day(Y)

输出结果为:

23

3.4.5 格式输出函数

格式输出函数Format( )可以使数值、日期或字符串等类型的数据按照规定的格式输出。

格式:

Format(<表达式>, <格式字符串>)

其中:

(1)<表达式>:要格式输出的表达式。

(2)<格式字符串>:规定了表达式值的输出格式。格式字符串有数值格式、日期格式和字符串格式3种类型,格式字符串两边要加双引号。

有关Visual Basic中对输出数据格式控制的详细内容,请查阅相关的参考资料。这里只介绍在控制格式字符串中最常用的格式化符号即0和#。其中0是数字占位符,显示1位数字或0,#为数字占位符,显示1位数字或什么都不显示。

例如,在立即窗口输入下面命令:

Print Format(123.456, "0000.0000")

输出结果为:

0123.4560

又如,在立即窗口输入下面命令:

Print Format(123.456, "####.####")

输出结果为:

123.456

再如,在立即窗口输入下面命令:

Print Format(123.456, "0000.##")

输出结果为:

0123.46

3.4.6 Shell函数

在Visual Basic中,可以用Shell函数调用任何Windows下的应用程序。

格式:

Shell(<文件名> [,<窗口风格>])

其中:

(1)<文件名>:要执行的应用程序文件名(包含路径)。它必须是可执行文件(扩展名为.com、.exe等)。

(2)<窗口风格>:要执行的应用程序窗口的样式。若省略该参数,则应用程序以一个具有焦点的最小化窗口来执行,<窗口风格>的取值范围为0~6之间的整数。

例如,如果要在运行应用程序时单击窗体,打开Windows下的记事本应用程序,可以通过如下代码实现: