vb提供许多内建的函数和语句,帮助程序设计者完成特定的任务。这些函数和语句按功能可分为如下几类:
交互式函数、类型转换函数、数学函数、日期和时间函数、字符串函数、目录和文件函数。下面分别介绍。
一、交互式函数
用来和用户进行交互的函数。经常使用的有MsgBox函数、InputBoe函数。
二、类型转换函数
当我们要对不同类型的变量进行赋值操作或表达式中的运算时,就要进行类型转换,所有的类型转换函数可见下表:
数据类型转换函数
函数 |
转换后的x类型或返回值 |
函数 |
转换后的x类型或返回值 |
Cbool(x) |
Boolean |
CStr(x) |
String |
Cbyte(x) |
Byte |
Cvar(x) |
Variant |
Ccur(x) |
Currency |
CVErr(x) |
Error |
Cdate(x) |
Date |
Fix(x) |
去掉小数部分(不四舍五入),保留整数部分 |
Cdbl(x) |
Double |
Hex(x) |
将十进制数转换为十六进制数 |
Chr(x) |
返回字符码对应的ASCII字符 |
Oct(x) |
将十进制数转换为八进制数 |
Cint(x) |
Integer |
Str(x) |
把x的值转换为一个字符串 |
Clng(x) |
Long |
Val(x) |
返回字符串内的数字 |
CSng(x) |
Single |
Int(x) |
产生一个不大于x值的最大整数 |
三、数学函数
数学函数用来完成特定的数学计算。常见的数学函数如下表。
数学函数功能表
函数名 |
功能 |
Abs(x) |
求绝对值 |
Exp(x) |
求指数 |
Fix(x) |
(截断函数)取整数,对负数取较大的(不四舍五入) |
Int(x) |
求不大于x的最大整数(所以,对负数取较小的) |
Log(x) |
求对数 |
Rnd(x) |
产生一个0~1间的随机数 |
Sgn(x) |
求数字符号。x为负、为正、为0,函数分别返回-1、1、0 |
Sin(x) |
正弦函数(返回弧度的正弦) |
Cos(x) |
余弦函数 |
Atn(x) |
反正切函数 |
Sqr(x) |
求平方根 |
Tan(x) |
正切函数 |
四、日期和时间函数
VB提供了丰富的关于日期和时间的函数,这些函数和语句不仅可以用来返回和设置当前的时间和日期,还可以从日期和时间中提取年、月、日、时、分、秒以及可以对时间和日期进行格式化等,如下表。
日期函数功能表
函数名 |
功能 |
Date |
取得系统当前日期 |
Time |
取得系统当前时间 (0-23) |
Now |
取得系统当前日期和时间 |
Year |
返回指定日期中的年份 |
Month |
返回指定日期中的月份(1-12) |
Day |
返回指定日期中天(1-31) |
Weekday |
返回指定日期为星期几 |
Hour |
返回指定时间量中的小时 |
Minute |
返回指定时间量中的分钟 |
Second |
返回指定时间量中的秒 |
DateSerial |
返回指定年月日的日期 |
TimeSerial |
返回指定小时分秒的时间 |
DateValue |
将字符串表示的日期转化为Variant日期 |
TimeValue |
将字符串表示的时间转化为Variant时间 |
DateAdd |
返回指定日期加上一定时间间隔后的日期 |
DateDiff |
返回两个日期的时间间隔 |
DatePart |
返回指定日期的特定部分 |
五、字符串函数
字符串函数用来完成对字符串的操作和处理,如截取字符串、查找和替换字符串、对字符串进行大小写处理等。VB6.0新添了许多字符串函数,加上原有的字符串函数,在对字符串的处理方面功能非常全面,如下表。
字符串函数功能表
函数名 |
功能 |
StrComp |
两个字符串比较 |
Lcase(字符串) |
把大写字母转换为小写字母 |
Ucase(字符串) |
把小写字母转换为大写字母 |
Space(n) |
返回n个空格 |
String(n,字符串) |
返回由n个字符组成的字符串 |
Len(字符串) |
测试字符串长度 |
Lset,Rset语句 |
给字符串变量赋值,赋在左边或右边 |
Instr(字符串1,字符串2,) |
在字符串1中查找字符串2 |
Mid(字符串,p,n) |
从位置p开始取字符串的n个字符 |
Left(字符串,n) |
取字符串的左部的n个字符 |
Right(字符串,n) |
取字符串的右部的n个字符 |
LTrim(字符串) |
去掉字符串左边的空白字符(空格) |
RTrim(字符串) |
去掉字符串右边的空白字符(空格) |
Trim(字符串) |
去掉字符串中的空白字符(空格) |
StrConv |
转换字符串 |
六、目录和文件函数
目录和文件函数属于文件系统函数。通过它们我们可以操作目录和文件,如创建目录、删除文件和读写文件等,常见的文件系统函数如下表。
文件系统函数列表
函数或语句名 |
功能 |
ChDir |
改变当前目录 |
ChDrive |
改变当前驱动器 |
CurDir |
返回当前目录 |
MkDir |
创建目录 |
RmDir |
删除目录 |
FileCopy |
拷贝文件 |
Kill |
删除文件 |
FileLen |
取得文件的长度(字节数) |
Dir |
查找指定的文件和目录 |
七、其它函数
★随机函数:
一般格式:Rnd(x)
其中:x可以是任意数值,一般取正数1。随机函数也可以写成Rnd。
功能:产生大于0而小于1的随机数。
要真正产生不同的随机数,必须在Rnd(x)语句前,使用播种语句Randomize[Timer](括号及括号中的内容为可选项),否则产生的是同一序列的随机数,即反复出现这一序列的随机数。
★截断函数:
一般格式:Fix(x)
其中:x可以是常数、变量、表达式等。
功能:将x经过计算变成数值常数,然后去掉小数部分,不分正、负,不考虑“四舍五入”。
例如:Fix(3.2)的结果为3;Fix(-3.6)的结果为-3;Fix(4.99)的结果为4。
★取整函数:
一般格式:Int(x)
其中:x可以是常数、变量、表达式等。
功能:产生一个不大于x值的最大整数。
例如:Fix(3.2)的结果为3;Fix(-3.6)的结果为-4;Fix(-14.01)的结果为-15。
八、一个示例
见教材P78。
界面及属性设置:
控件 |
Form |
Label |
Command |
Command |
Command |
Name属性 |
frmWatch |
LbShow |
CmdStart |
CmdStop |
Cmdinitiate |
Caption属性 |
计时秒表 |
00:00:00:00 |
开始计时 |
终止计时 |
秒表清零 |
Font属性 |
Default |
宋体,小二 |
Default |
Default |
Default |

代码:
Dim flag As Boolean '标志秒表是否需要清零,以及是否退出计时循环。 Const op = 100 '控制秒表速度。本例中的基本时间单位是毫秒,它不是由系统提供的,而是有一个循环控制,op控制了循环次数,从而控制了该例子的单位时间长度。
Private Sub Form_Load() Command1.Caption = "开始计时" End Sub
Private Sub Command3_Click() Label1.Caption = "00:00:00:00" flag = False Command1.Caption = "开始计时" End Sub
Private Sub Command1_Click() Static hour As Integer Static minute As Integer Static second As Integer Static msecond As Integer Dim i As Integer If flag = False Then '秒表已清零或在初始状态下。 hour = 0 '显示时间初始化。 minute = 0 second = 0 msecond = 0 End If flag = False '强制标志位变为False,以使以下计时程序能够执行。 Do While hour < 24 Do While minute < 60 Do While second < 60 Do While msecond < 100 For i = 1 To op DoEvents '当有其它事情发生时,使系统接管控制权,从而响应其它事件的发生。 If flag = True Then GoTo exitloop '当Flag为真时,退出计时循环。 End If Next i Label1.Caption = Format$(hour, "00") + ":" + _ Format$(minute, "00") + ":" + _ Format$(second, "00") + ":" + _ Format$(msecond, "00") msecond = msecond + 1
'毫秒加1 Loop msecond = 0 '毫秒达到100后复位为0。 second = second + 1 '秒数加1。 Loop second = 0 '秒数达到60后复位为0。 minute = minute + 1 '分钟数加1。 Loop minute = 0 '分钟数达到60后复位为0。 hour = hour + 1 '小时数加1。 Loop hour = 0 '小时数达到24后复位为0。以上五重循环为一个秒表走时循环。 exitloop: '停止计时。 End Sub
Private Sub Command2_Click() flag = True '标志秒表计时终止。 Command1.Caption = "继续计时" '改变按钮提示内容。 End Sub
[程序演示] [程序下载]
|