
第2章数据与表达式.ppt
75页第2章 数据与表达式 本章要点•字符集•数据类型•常量、变量•运算符、表达式•常用内部函数2..1 字符集字符集2.1.1 VB的字符集的字符集VB的基本字符集包括:字母:大写英文字母A—Z;小写英文字母a—z数字:0一9;专用字符:共27个 2.1.2 编码规则1.VB1.VB代码中不区分字母的大小写代码中不区分字母的大小写 为为提提高高程程序序的的可可读读性性,,VBVB对对用用户户程程序序代代码码进进行行自自动转换:动转换:((1 1))对对于于VBVB中中的的关关键键字字,,首首字字母母总总被被转转换换成成大大写写,,其余字母被转换成小写;其余字母被转换成小写;((2 2))若若关关键键字字由由多多个个英英文文单单词词组组成成,,它它会会将将每每个个单单词首字母转换成大写;词首字母转换成大写; 2.语句书写自由((1 1))在在同同一一行行上上可可以以书书写写多多条条语语句句,,但但语语句句间间要要用用冒号冒号“ “::” ”分隔分隔 a = 10: b = 20a = 10: b = 20((2 2))若若一一个个语语句句行行不不能能写写下下全全部部语语句句,,或或在在特特别别需需要要时时,,可可以以换换行行。
换换行行时时需需在在本本行行后后加加入入续续行行符符,,1 1个空格加下划线个空格加下划线"_""_"3 3)一行最多允许)一行最多允许255255个字符个字符3.3.注释有利于程序的维护和调试注释有利于程序的维护和调试其语法格式为:Rem <注释内容>或 ' <注释内容>注注释释以以RemRem开开头头,,也也可可以以使使用用单单引引"'""'",,注注释释内内容容可直接出现在语句的后面可直接出现在语句的后面例如:例如: ' This is a VB' This is a VB REM This is a VB REM This is a VB 如如果果在在其其他他语语句句行行后后面面使使用用Rem关关键键字字,,必必需需用用冒冒号号(::)与与语语句句隔隔开开若若用用英英文文单单引引号号"'",,则则在其他语句行后面不必加冒号在其他语句行后面不必加冒号(::)例如:例如:Const PI=3.1315925 ' 符号常量符号常量PIS = PI * r * r: Rem 计算圆的面积计算圆的面积 也可以使用也可以使用也可以使用也可以使用" "编辑编辑编辑编辑" "工具栏的工具栏的工具栏的工具栏的" "设置注释块设置注释块设置注释块设置注释块" "、、、、" "解除注释块解除注释块解除注释块解除注释块" "按钮,使选中的若干语句增加注释或按钮,使选中的若干语句增加注释或按钮,使选中的若干语句增加注释或按钮,使选中的若干语句增加注释或消除注释消除注释消除注释消除注释, ,十分方便。
十分方便十分方便十分方便4.保留行号和标号 VBVB源程序也接受行号与标号,但这不是必须的源程序也接受行号与标号,但这不是必须的 每每个个对对象象的的名名字字由由3 3个个小小写写字字母母组组成成的的前前缀缀((指指明明对对象象的的类类型型))和和表表示示该该对对象象作作用用的的缩缩写写字字母母组组成成 2..2 数据类型数据类型2.2.1 标准数据类型标准数据类型数据类型关键字类型符前缀占字节数范围字节型Byte无byt10~255逻辑型Boolean无 bln2True与False整型Integer%int2-32768到32767长整型Long&lng4-2,147,483,648~2,147,483,647单精度型Single!sng4负数:-3.402823E38~-1.401298E-45正数:1.401298E-45~3.402823E38双精度型Double#dbl8 负数:-1.79769313486232D308~-4.94065645841247D-324正数:4.94065645841247D-贷币型Currency@cur8-922,337,203,685,477.5808~922,337,203,685,477.5807日期型Date(time)无dtm801,01,100~12,31,9999字符串型String$str字符串长度有关0~65535个字符对象型Object无obj4任何对象引用变体型variant无vnt根据需要分配表表2-1 VB中的标准数据类型表中的标准数据类型表2.2.6 2.2.6 自定义类型自定义类型 由由TypeType语句来实现:语句来实现:格式:格式:[ [Pubilc|Private]TypePubilc|Private]Type 自定义类型名自定义类型名 元素名元素名1 As 1 As 类型名类型名 元素名元素名2 As 2 As 类型名类型名 ………… 元素名 元素名n As n As 类型名类型名 End TypeEnd Type元素名:表示自定义数据类型中的一个成员。
元素名:表示自定义数据类型中的一个成员 类型名:为标准类型类型名:为标准类型定义一个有关学生考试信息的自定义类型: Type Stutype name As String*4 '姓名 age As Integer birthday As Date weight As Single yuweng As Single '语文 End Type 对于定义好的类型,就可以在变量声明时使用该对于定义好的类型,就可以在变量声明时使用该类型 例如,可在某过程声明变量:例如,可在某过程声明变量: Dim Student As Dim Student As StutypeStutype 要表示要表示StudentStudent变量中的某个元素,形式如下:变量中的某个元素,形式如下: 变量名.元素名变量名.元素名 例如,要表示考生的姓名,语文的成绩:例如,要表示考生的姓名,语文的成绩: Student.nameStudent.name ,, StudentStudent..yuwengyuweng注 意((1 1))TypeType语语句句是是不不可可执执行行的的,,而而且且只只能能出出现现在在模模块的声明部分,在过程中不能使用块的声明部分,在过程中不能使用TypeType语句语句 。
2 2))自自定定义义类类型型中中的的元元素素类类型型可可以以是是字字符符串串,,但但必须是定长字符串必须是定长字符串3 3))不不能能将将自自定定义义类类型型名名和和该该类类型型变变量量名名混混淆淆,,VBVB会会根根据据变变量量的的类类型型分分配配所所需需的的内内存存空空间间,,存存储储数数据2.2.7 枚举型枚举型:格式:[Public|Private] Enum 枚举类型名 元素名1 [=元素值] 元素名2 [=元素值] … End Type private enum color black=1 white=2 end enum2.2.8 模块模块 VB应用程序(通常称为工程)由窗体模块、标准模块和类模块组成 VB程序代码保存在窗体模块文件(*.Frm)、标准模块文件(*.Bas)或类模块文件(*.Cls)中,它们形成了工程的一种模块层次结构,如下图所示:一个应用程序的组成结构一个应用程序的组成结构窗体模块窗体模块(文件扩展名为文件扩展名为 .FRM ) 窗窗体体模模块块可可以以包包含含处处理理事事件件的的过过程程、、通通用用过过程程以以及及变变量量、、常常数数、、类类型型和和外外部部过过程程的的窗窗体体级级声声明。
明 写写入入窗窗体体模模块块的的代代码码是是该该窗窗体体所所属属的的具具体体应应用用程程序序专专用用的的;;它它也也可可以以引引用用该该应应用用程程序序内内的的其其它窗体或对象它窗体或对象标准模块标准模块(文件扩展名为.文件扩展名为.BAS) 它它们们可可以以包包含含变变量量、、常常数数、、类类型型、、外外部部过过程程和和全全局局过过程程的的全全局局(在在整整个个应应用用程程序序范范围围内内有有效效的的)声明或模块级声明声明或模块级声明 写写入入标标准准模模块块的的代代码码不不必必绑绑在在特特定定的的应应用用程程序序上上,,则则在在许许多多不不同同的的应应用用程程序序中中可可以以重重用用标标准准模模块类模块类模块(文件扩展名为文件扩展名为 .CLS) 在在 Visual Basic 中中类类模模块块是是面面向向对对象象编编程程的的基基础础,可可在在类类模模块块中中编编写写代代码码建建立立新新对对象象这这些些新新对对象可以包含自定义的属性和方法象可以包含自定义的属性和方法 窗窗体体正正是是这这样样一一种种类类模模块块,,在在其其上上可可安安放放控控件件,,可显示窗体窗口。
可显示窗体窗口2.3 常量、变量常量、变量2.3.1 2.3.1 常量常量常量常量 在在在在程程程程序序序序执执执执行行行行的的的的过过过过程程程程中中中中保保保保持持持持不不不不变变变变的的的的数数数数据据据据称称称称为为为为常常常常量量量量在在在在VBVB中中中中,,,,常常常常量量量量分分分分为为为为两两两两种种种种,,,,普普普普通通通通常常常常量量量量和和和和符符符符号号号号常常常常量量量量符号常量又分为用户自定义和系统定义两种符号常量又分为用户自定义和系统定义两种符号常量又分为用户自定义和系统定义两种符号常量又分为用户自定义和系统定义两种1 1.普通常量.普通常量.普通常量.普通常量 普普普普通通通通常常常常量量量量直直直直接接接接出出出出现现现现在在在在代代代代码码码码中中中中,,,,也也也也称称称称为为为为字字字字面面面面常常常常量量量量或或或或文文文文字常量,普通常量的表示形式决定它的类型和值字常量,普通常量的表示形式决定它的类型和值字常量,普通常量的表示形式决定它的类型和值字常量,普通常量的表示形式决定它的类型和值。
• • 整型常量:整型常量:整型常量:整型常量:• • 整型(整型(整型(整型(IntegerInteger):):):): 表示表示表示表示-32768-32768至至至至3276732767之间的整数之间的整数之间的整数之间的整数, ,例如:例如:例如:例如:10 110 2010 110 20• • 长整型(长整型(长整型(长整型(LongLong):):):): 表示表示表示表示-2,147,483,648-2,147,483,648至至至至2,147,483,6472,147,483,647之间的整数之间的整数之间的整数之间的整数 通通通通常常常常我我我我们们们们说说说说的的的的整整整整型型型型常常常常量量量量指指指指的的的的是是是是十十十十进进进进制制制制整整整整数数数数,,,,但但但但VBVB中中中中可可可可以以以以使使使使用用用用八八八八进进进进制制制制和和和和十十十十六六六六进进进进制制制制形形形形式式式式的的的的整整整整型型型型常常常常数数数数,,,,因此整型常数有如下三种形式:因此整型常数有如下三种形式:因此整型常数有如下三种形式:因此整型常数有如下三种形式: ((((1 1)十进制整数。
如)十进制整数如)十进制整数如)十进制整数如125125,,,,0 0,,,,-89-892 2))))八八八八进进进进制制制制整整整整数数数数以以以以& &或或或或&O&O((((字字字字母母母母OO))))开开开开头头头头的的的的整整整整数数数数是是是是八八八八进进进进制制制制整整整整数数数数,,,,如如如如&O25&O25表表表表示示示示八八八八进进进进制制制制整整整整数数数数2525,,,,即即即即(25)8 (25)8 ,等于十进制数,等于十进制数,等于十进制数,等于十进制数21213 3))))十十十十六六六六进进进进制制制制以以以以&H&H开开开开头头头头的的的的整整整整数数数数是是是是十十十十六六六六进进进进制制制制整整整整数数数数,,,,如如如如&H25&H25表表表表示示示示十十十十六六六六进进进进制制制制整整整整数数数数2525,,,,等等等等于于于于十十十十进进进进制制制制数数数数3737VBVB中的颜色数据常常用十六进制整数表示中的颜色数据常常用十六进制整数表示中的颜色数据常常用十六进制整数表示中的颜色数据常常用十六进制整数表示 实数常量:实数常量:实数常量:实数常量:((((1 1)))) 单单单单精精精精度度度度实实实实型型型型((((SingleSingle))))::::有有有有效效效效数数数数为为为为7 7位位位位, ,表表表表示示示示-3.40E-3.40E++++3838至至至至3.40E3.40E++++3838之间的实数之间的实数之间的实数之间的实数 。
((((2 2))))双双双双精精精精度度度度实实实实型型型型((((DoubleDouble))))::::有有有有效效效效数数数数为为为为1515位位位位,,,,表示-表示-表示-表示-1.80D1.80D++++308308至至至至1.80D1.80D++++308308之间的实数之间的实数之间的实数之间的实数 实数常量的表示实数常量的表示实数常量的表示实数常量的表示((((1 1))))十十十十进进进进制制制制小小小小数数数数形形形形式式式式它它它它是是是是由由由由正正正正负负负负号号号号((((+ +,,,,- -))))、、、、数数数数字字字字((((0~90~9))))和和和和小小小小数数数数点点点点((((. .))))或或或或类类类类型型型型符符符符号号号号((((!!!!、、、、# #))))组组组组成成成成,,,,即即即即±n.n±n.n,,,,±n±n!或!或!或!或±n#±n#,,,,其中其中其中其中n n是是是是0~90~9的数字。
的数字 例例例例如如如如0.1230.123、、、、.123.123、、、、123.0123.0、、、、123123!!!!、、、、123#123#等等等等都都都都是是是是十十十十进进进进制小数形式制小数形式制小数形式制小数形式2 2)指数形式指数形式指数形式指数形式± ±nE±mnE±m 或或或或 ± ±n.nE±mn.nE±m, ±, ±nD±mnD±m 或或或或 ± ±n.nD±mn.nD±m 例:例:例:例:1.25E+3 1.25E+3 和和和和 1.25D+31.25D+3相当于相当于相当于相当于1250.0 1250.0 或者或者或者或者1.25×101.25×103 3字字字字符符符符型型型型常常常常量量量量::::在在在在VBVB中中中中字字字字符符符符串串串串常常常常量量量量是是是是用用用用双双双双引引引引号号号号""""括括括括起起起起的的的的一一一一串串串串字字字字符符符符,,,,这这这这些些些些字字字字符符符符可可可可以以以以是是是是除除除除双双双双引引引引号号号号""""""、、、、回回回回车车车车和和和和换换换换行行行行符符符符以以以以外外外外的的的的所有字符。
所有字符所有字符所有字符几点说明:几点说明:几点说明:几点说明:((((1 1))))字字字字符符符符串串串串中中中中的的的的字字字字符符符符可可可可以以以以是是是是所所所所有有有有西西西西文文文文字字字字符符符符和和和和汉汉汉汉字字字字、、、、标标标标点点点点符符符符号等;号等;号等;号等;((((2 2))))""""表示空字符串,而表示空字符串,而表示空字符串,而表示空字符串,而" "" "表示有一个空格的字符串;表示有一个空格的字符串;表示有一个空格的字符串;表示有一个空格的字符串;((((3 3))))若若若若字字字字符符符符串串串串中中中中有有有有双双双双引引引引号号号号,,,,例例例例如如如如ABD"XYZABD"XYZ,,,,则则则则用用用用连连连连续续续续两两两两个双引号表示,即:个双引号表示,即:个双引号表示,即:个双引号表示,即: “ “ABD”“XYZ”ABD”“XYZ”•?hex(2002)7D2•?hex(2002.43)•7D2•?hex(2002.53)•7D3•?hex(2002.63)•7D3•?hex(2003)•7D3日期型常量:日期型常量:日期型常量:日期型常量: 日日日日期期期期((((DateDate))))型型型型数数数数据据据据按按按按8 8字字字字节节节节的的的的浮浮浮浮点点点点数数数数来来来来存存存存储储储储,,,,表表表表示示示示日日日日期期期期范范范范围围围围从从从从公公公公元元元元100100年年年年1 1月月月月1 1日日日日~9999~9999年年年年1212月月月月3131日日日日,,,,而而而而时间范围从时间范围从时间范围从时间范围从0:00:00~23:59:590:00:00~23:59:59。
一一一一种种种种在在在在字字字字面面面面上上上上可可可可被被被被认认认认作作作作日日日日期期期期和和和和时时时时间间间间的的的的字字字字符符符符,,,,只只只只要要要要用用用用号号号号码符码符码符码符"#""#"括起来,都可以作为日期型数值常量括起来,都可以作为日期型数值常量括起来,都可以作为日期型数值常量括起来,都可以作为日期型数值常量 例例例例 :::: #09/02/99##09/02/99#、、、、 #January #January 4,1989#4,1989#,,,, #2002-5-4 #2002-5-4 14:30:00 PM#14:30:00 PM#都是合法的日期型常量都是合法的日期型常量都是合法的日期型常量都是合法的日期型常量 逻辑型常量:逻辑型常量:逻辑型常量:逻辑型常量: 只只只只有有有有两两两两个个个个值值值值TrueTrue,,,,或或或或FalseFalse将将将将逻逻逻逻辑辑辑辑数数数数据据据据转转转转换换换换成整型时:成整型时:成整型时:成整型时:TrueTrue为为为为-1-1,,,,FalseFalse为为为为0 0;;;; 其其其其它它它它数数数数据据据据转转转转换换换换成成成成逻逻逻逻辑辑辑辑数数数数据据据据时时时时::::非非非非0 0为为为为True, True, 0 0为为为为FalseFalse。
2.符号常量.符号常量 符符号号常常量量就就是是用用标标识识符符来来表表示示一一个个常常量量当当我我们们要要修修改改该该常常量量时时,,只只需需要要修修改改定定义义该该常量的一个语句即可常量的一个语句即可 定义常量的方法如下:定义常量的方法如下:[Pubilc|Private] const 常常量量名名 [as类类型型]=表达式表达式 常常常常量量量量名名名名的的的的命命命命名名名名规规规规则则则则与与与与标标标标识识识识符符符符相相相相同同同同,[as,[as类类类类型型型型] ]用用用用以以以以说说说说明明明明常量的数据类型常量的数据类型常量的数据类型常量的数据类型1 1))))< <常常常常量量量量名名名名> >由由由由1~2551~255个个个个字字字字符符符符组组组组成成成成,,,,包包包包含含含含的的的的符符符符号号号号可可可可以以以以是是是是数数数数字字字字、、、、英英英英文文文文字字字字母母母母或或或或下下下下划划划划线线线线,,,,中中中中间间间间不不不不能能能能有有有有".""."或或或或其其其其他他他他类类类类型说明字符,并且必须以英文字母开头。
型说明字符,并且必须以英文字母开头型说明字符,并且必须以英文字母开头型说明字符,并且必须以英文字母开头2 2))))<<<<表表表表达达达达式式式式>>>>由由由由数数数数值值值值常常常常量量量量、、、、字字字字符符符符串串串串常常常常量量量量等等等等及及及及运运运运算算算算符符符符组组组组成成成成,,,,可可可可以以以以包包包包含含含含前前前前面面面面定定定定义义义义过过过过的的的的常常常常量量量量,,,,但但但但不不不不能能能能使使使使用用用用函函函函数数数数调调调调用下面是声明符号常量的例子:下面是声明符号常量的例子:下面是声明符号常量的例子:下面是声明符号常量的例子:Const Const conPiconPi=3.1415916 =3.1415916 ` `表示数量表示数量表示数量表示数量Public Const Public Const conMaxPlanetsconMaxPlanets As Integer=100 As Integer=100 ' '表示数量表示数量表示数量表示数量Const Const conReleaseDateconReleaseDate=#11/10/2000# =#11/10/2000# ' '表示日期表示日期表示日期表示日期Public Const Public Const conTelconTel="3859987" ="3859987" ' '表示字符串表示字符串表示字符串表示字符串Const Const conCodeNameconCodeName="Rose" ="Rose" ' '表示字符串表示字符串表示字符串表示字符串((((3 3))))如如如如果果果果用用用用逗逗逗逗号号号号进进进进行行行行分分分分隔隔隔隔,,,,则则则则在在在在一一一一行行行行中中中中可可可可放放放放置置置置多多多多个个个个常常常常量量量量声声声声明:明:明:明:Public Public Const Const conPiconPi = = 3.14, 3.14, conMaxPlanetsconMaxPlanets = = 9, 9, conWorldPopconWorldPop = 6000000000# = 6000000000# ((((4 4))))等等等等号号号号" "====" "右右右右边边边边的的的的表表表表达达达达式式式式往往往往往往往往是是是是数数数数字字字字或或或或字字字字符符符符串串串串,,,,但但但但也也也也可可可可以以以以是是是是结结结结果果果果为为为为数数数数字字字字或或或或字字字字符符符符串串串串的的的的表表表表达达达达式式式式, ,甚甚甚甚至至至至可可可可用用用用先先先先前前前前定定定定义义义义过过过过的的的的常量定义新常量,例如:常量定义新常量,例如:常量定义新常量,例如:常量定义新常量,例如: Const conPi2=Const conPi2=conPiconPi*3*3(5)Const(5)Const语句的使用范围和规则:语句的使用范围和规则:语句的使用范围和规则:语句的使用范围和规则:如如如如果果果果要要要要创创创创建建建建仅仅仅仅存存存存在在在在于于于于过过过过程程程程中中中中的的的的常常常常量量量量,,,,应应应应在在在在该该该该过过过过程程程程内内内内声声声声明明明明常常常常量量量量,,,,如如如如Const age=20Const age=20。
如如如如果果果果要要要要创创创创建建建建的的的的常常常常量量量量对对对对模模模模块块块块中中中中所所所所有有有有过过过过程程程程都都都都有有有有效效效效,,,,但但但但对对对对模模模模块块块块之之之之外外外外任何代码都无效,应在模块的声明段中声明常量,如任何代码都无效,应在模块的声明段中声明常量,如任何代码都无效,应在模块的声明段中声明常量,如任何代码都无效,应在模块的声明段中声明常量,如 Private Const a=20Private Const a=20如如如如果果果果要要要要创创创创建建建建在在在在整整整整个个个个应应应应用用用用程程程程序序序序中中中中有有有有效效效效的的的的常常常常量量量量,,,,应应应应在在在在标标标标准准准准模模模模块块块块的的的的声明段中进行声明,并在声明段中进行声明,并在声明段中进行声明,并在声明段中进行声明,并在ConstConst前面放置前面放置前面放置前面放置Public Public 关键字,如关键字,如关键字,如关键字,如 Public Const a=20Public Const a=20。
在窗体模块或类模块中不能声明在窗体模块或类模块中不能声明在窗体模块或类模块中不能声明在窗体模块或类模块中不能声明PublicPublic常量2.3.2 2.3.2 变量变量变量变量 在程序执行过程中,其值可以改变的量称为变量在程序执行过程中,其值可以改变的量称为变量在程序执行过程中,其值可以改变的量称为变量在程序执行过程中,其值可以改变的量称为变量1.1.命名规则命名规则命名规则命名规则((((1 1))))变变变变量量量量名名名名只只只只能能能能由由由由字字字字母母母母、、、、数数数数字字字字和和和和下下下下划划划划线线线线组组组组成成成成,,,,中中中中间间间间不不不不能能能能包含小数点,如包含小数点,如包含小数点,如包含小数点,如int.sumint.sum是非法的是非法的是非法的是非法的2 2))))变变变变量量量量名名名名的的的的第第第第一一一一个个个个字字字字符符符符必必必必须须须须是是是是英英英英文文文文字字字字母母母母,,,,如如如如::::sum,a2,sum,a2,不能为不能为不能为不能为2a2a3 3))))组成变量名的字符数不得超过组成变量名的字符数不得超过组成变量名的字符数不得超过组成变量名的字符数不得超过255255个字符。
个字符4 4))))不不不不能能能能用用用用VBVB的的的的保保保保留留留留字字字字作作作作变变变变量量量量名名名名,,,,但但但但可可可可以以以以把把把把保保保保留留留留字字字字嵌嵌嵌嵌入入入入变变变变量量量量名名名名中中中中;;;;变变变变量量量量名名名名也也也也不不不不能能能能是是是是末末末末尾尾尾尾带带带带有有有有类类类类型型型型说说说说明明明明符符符符的的的的保保保保留留留留字字字字例例例例如如如如,,,,变变变变量量量量Print Print 和和和和Print$Print$是是是是非非非非法法法法的的的的,,,,而而而而变变变变量量量量 Print_NumberPrint_Number是合法的是合法的是合法的是合法的2 2.变量的声明.变量的声明.变量的声明.变量的声明 ((((1 1)类型声明语句)类型声明语句)类型声明语句)类型声明语句格式:声明符格式:声明符格式:声明符格式:声明符 变量名变量名变量名变量名 [As [As 类型类型类型类型] ] 声声声声明明明明符符符符是是是是声声声声明明明明语语语语句句句句的的的的关关关关键键键键字字字字,,,,它它它它可可可可以以以以是是是是DimDim,,,,PrivatePrivate,,,,PublicPublic,,,,Static,Static,缺省缺省缺省缺省 [As[As类型类型类型类型] ]为可变类型。
为可变类型为可变类型为可变类型 Dim a as integerDim a as integer Dim b as long Dim b as long Dim c as single Dim c as single上面的上面的上面的上面的3 3个语句可以写为:个语句可以写为:个语句可以写为:个语句可以写为: Dim a as integerDim a as integer,,,,b as longb as long,,,,c as singlec as single 也可以用类型符来定义变量,例如上面语句写成:也可以用类型符来定义变量,例如上面语句写成:也可以用类型符来定义变量,例如上面语句写成:也可以用类型符来定义变量,例如上面语句写成: Dim a%Dim a%,,,,b&b&,,,,c! c! 作用是一样的作用是一样的作用是一样的作用是一样的 若若若若把把把把多多多多个个个个变变变变量量量量都都都都定定定定义义义义成成成成同同同同一一一一类类类类型型型型,,,,例例例例如如如如::::把把把把X X,,,,Y Y,,,,Z Z都都都都定定定定义义义义成成成成双双双双精精精精度度度度型型型型,,,,必必必必须须须须写写写写成成成成::::Dim Dim X X as as doubledouble,,,, Y as doubleY as double,,,,Z as doubleZ as double 如果写成:如果写成:如果写成:如果写成:Dim xDim x,,,,y y,,,,z as doublez as double则则则则x x,,,,y y定义成可变类型,定义成可变类型,定义成可变类型,定义成可变类型,z z定义成双精度型。
定义成双精度型定义成双精度型定义成双精度型 对对对对于于于于字字字字符符符符型型型型变变变变量量量量,,,,VBVB中中中中分分分分为为为为定定定定长长长长和和和和变变变变长长长长两两两两种种种种, ,例例例例如:如:如:如: Dim Name As String, Id As String * 10Dim Name As String, Id As String * 10((((2 2)隐式声明)隐式声明)隐式声明)隐式声明 Visual Visual BasicBasic允允允允许许许许用用用用户户户户在在在在编编编编写写写写应应应应用用用用程程程程序序序序时时时时,,,,不不不不声声声声明明明明变变变变量量量量而而而而直直直直接接接接使使使使用用用用,,,,系系系系统统统统临临临临时时时时为为为为新新新新变变变变量量量量分分分分配配配配存存存存储储储储空间并使用,这就是隐式声明空间并使用,这就是隐式声明空间并使用,这就是隐式声明空间并使用,这就是隐式声明 所所所所有有有有隐隐隐隐式式式式声声声声明明明明的的的的变变变变量量量量都都都都是是是是VariantVariant数数数数据据据据类类类类型型型型。
Visual Visual BasicBasic根根根根据据据据程程程程序序序序中中中中赋赋赋赋予予予予变变变变量量量量的的的的值值值值来来来来自自自自动动动动调调调调整整整整变量的类型变量的类型变量的类型变量的类型 一一一一个个个个很很很很简简简简单单单单的的的的程程程程序序序序,,,,其其其其使使使使用用用用的的的的变变变变量量量量a, a, b, b, SumSum都没有事先定义都没有事先定义都没有事先定义都没有事先定义Private Sub Form_Click()Private Sub Form_Click()Sum = 0Sum = 0a = 10: b = 20a = 10: b = 20Sum = a + bSum = a + bPrint "Sum="; SumPrint "Sum="; SumEnd SubEnd Sub((((3 3)强制显式声明)强制显式声明)强制显式声明)强制显式声明——Option Explicit——Option Explicit语句语句语句语句 “ “先先先先声声声声明明明明变变变变量量量量,,,,后后后后使使使使用用用用变变变变量量量量” ”,,,,这这这这样样样样做做做做可可可可以以以以提提提提高程序的效率,同时也使程序易于调试。
高程序的效率,同时也使程序易于调试高程序的效率,同时也使程序易于调试高程序的效率,同时也使程序易于调试 Visual Visual Basic Basic 中中中中可可可可以以以以强强强强制制制制显显显显式式式式声声声声明明明明,,,,可可可可以以以以在在在在窗窗窗窗体体体体模模模模块块块块、、、、标标标标准准准准模模模模块块块块和和和和类类类类模模模模块块块块的的的的通通通通用用用用声声声声明明明明段段段段中中中中加加加加入入入入语语语语句:句:句:句:Option ExplicitOption ExplicitOption Explicit语句 3 3.变体类型变量.变体类型变量.变体类型变量.变体类型变量VariantVariant 当当当当声声声声明明明明语语语语句句句句中中中中,,,,使使使使用用用用类类类类型型型型关关关关键键键键字字字字VariantVariant定定定定义义义义类类类类型型型型,,,,或或或或仅仅仅仅定定定定义义义义变变变变量量量量而而而而不不不不作作作作类类类类型型型型声声声声明明明明, ,则则则则该该该该变变变变量量量量称称称称为为为为变体类型变量。
变体类型变量变体类型变量变体类型变量4 4.自定义类型变量.自定义类型变量.自定义类型变量.自定义类型变量 在在在在 Visual Visual Basic Basic 6.0 6.0 中中中中允允允允许许许许用用用用户户户户自自自自己己己己定定定定义义义义变变变变量量量量类类类类型型型型,,,,在在在在定定定定义义义义" "自自自自定定定定义义义义类类类类型型型型变变变变量量量量" "前前前前要要要要先先先先定定定定义义义义数数数数据据据据类型2.3.3 变量的作用域 在在VB中中,,由由于于可可以以在在过过程程中中和和模模块块中中声声明明变变量量,,根根据据定定义义变变量量的的位位置置和和定定义义变变量量的的语语句句不不同同,,变变量量可以分为:可以分为:u局部变量局部变量u模模块块级级变变量量((私私有有的的模模块块级级变变量量,,能能被被本本模模块块的的所有过程和函数使用)所有过程和函数使用)u全局变量(公有的模块级变量)全局变量(公有的模块级变量)过程级变量过程级变量——局部变量局部变量局部变量:在过程内声明的变量,只能在本过程局部变量:在过程内声明的变量,只能在本过程中使用。
中使用 在过程内部使用在过程内部使用 Dim 或者或者 Static 关键字来声关键字来声明的变量,只在声明它们的过程中才能被访问或明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程不可访问所以可以改变该变量的值,别的过程不可访问所以可以在不同的过程中声明相同名字的局部变量而互不在不同的过程中声明相同名字的局部变量而互不影响 Private Sub Form_Load() Dim n% n= 10 print nEnd SubPrivate Sub From_Click() Dim n% Print "="; nEnd Sub程序运行后单击窗体,其输出结果是什么?程序运行后单击窗体,其输出结果是什么?窗体窗体/模块级变量模块级变量 窗窗体体/模模块块级级变变量量::在在“通通用用声声明明”段段中中用用Dim语语句句或或用用Private语语句句声声明明的的变变量量,,可可被被本本窗窗体体/模模块块的的任任何何过过程程访问访问,但其他模块却不能访问该变量但其他模块却不能访问该变量 在在“通用声明通用声明”段声明如下变量段声明如下变量Private s As StringDim a As Integer,,b As Single 全局变量全局变量 全全局局变变量量也也称称公公有有的的模模块块级级变变量量,,在在窗窗体体模模块块或或标标准准模模块块的的顶顶部部的的“通通用用”声声明明段段用用Public关关键键字字声声明明,,它它的的作作用用范范围围是是整整个个应应用用程程序序,,即即可可被被本本应应用用程程序的任何过程或函数访问。
序的任何过程或函数访问 例如:例如:Public a As Integer,,b As single3种种变量声明及使用规则如下表:变量声明及使用规则如下表:2..4 运算符、表达式运算符、表达式2.4.1 运算符运算符 VB中中的的运运算算符符有有算算术术运运算算符符、、字字符符串串运运算算符符、、关关系系运运算算符符和和逻逻辑辑运运算算符符四类1. 算术运算符算术运算符算术运算符算术运算符运算符含义优先级例结果^乘方13^29-负号2-3-3*乘33*3*327/除310/33.33333333\整除410\33Mod取模510 Mod 31+加610+313-减63-10-72 .2 .字符串运算符字符串运算符字符串运算符字符串运算符 字字字字符符符符串串串串只只只只有有有有连连连连接接接接运运运运算算算算,,,,在在在在VBVB中中中中可可可可以以以以用用用用“ “+”+”或或或或“ “&”&”建建建建议议议议尽尽尽尽量量量量使使使使用用用用“ “&”&”,,,,使使使使程程程程序序序序看看看看起起起起来来来来更更更更明明明明了了了了。
使使使使用用用用“ “&”&”运运运运算算算算符符符符时时时时应应应应注注注注意意意意前前前前后后后后加加加加空空空空格格格格,,,,否否否否则则则则VBVB会会会会当当当当作长整数型的类型符来处理作长整数型的类型符来处理作长整数型的类型符来处理作长整数型的类型符来处理 “ “+”+”和和和和“ “&”&”的的的的区区区区别别别别::::当当当当两两两两个个个个被被被被连连连连接接接接的的的的数数数数据据据据都都都都是是是是字字字字符符符符型型型型时时时时,,,,它它它它们们们们的的的的作作作作用用用用相相相相同同同同当当当当数数数数字字字字型型型型和和和和字字字字符符符符型型型型连连连连接接接接时时时时,,,,"&""&"把把把把数数数数据据据据都都都都转转转转化化化化成成成成字字字字符符符符型型型型然然然然后后后后连连连连接接接接;;;;"+""+"把把把把数据都转化成数字符型然后连接数据都转化成数字符型然后连接数据都转化成数字符型然后连接数据都转化成数字符型然后连接"ABC"+"DEF""ABC"+"DEF"其值为其值为其值为其值为"ABCDEF""ABCDEF"。
" "姓名:姓名:姓名:姓名:" & "" & "张三张三张三张三" " 其值为:其值为:其值为:其值为:" "姓名:张三姓名:张三姓名:张三姓名:张三" "23 & "7" 23 & "7" 其值为:其值为:其值为:其值为:"237""237"23+"7" 23+"7" 其值为:其值为:其值为:其值为:303023+“7abc”23+“7abc”则会出现类型不匹配的误则会出现类型不匹配的误则会出现类型不匹配的误则会出现类型不匹配的误 使使用用运运算算符符“&”时时,,变变量量与与运运算算符符“&”之之间间应应加加一一个个空空格格这这是是因因为为符符号号“&”还还是是长长整整型型的的类类型型定定义义符符,,如如果果变变量量与与符符号号“&”接接在在一一起起,,VB系系统统先先把把它它作作为为类类型型定义符处理,因而就会出现语法错误定义符处理,因而就会出现语法错误 3.3.关系运算符关系运算符关系运算符关系运算符 关系运算符都是双目运算,是用来比较两个运算量之关系运算符都是双目运算,是用来比较两个运算量之关系运算符都是双目运算,是用来比较两个运算量之关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。
若关系成间的关系,关系表达式的运算结果为逻辑量若关系成间的关系,关系表达式的运算结果为逻辑量若关系成间的关系,关系表达式的运算结果为逻辑量若关系成立,结果为立,结果为立,结果为立,结果为TrueTrue,,,,若关系不成立,结果为若关系不成立,结果为若关系不成立,结果为若关系不成立,结果为FalseFalse运算符含义例结果=等于"ABCDE" = "ABR"False>大于"ABCDE">"ABR"False>=大于等于"bc" >= "abcdef"True<小于23<3False<=小于等于"23" <= "3"True<>不等于"abc" <> "ABC"TrueLike字符串匹配"ABC" like "ABCD"True关系运算的规则关系运算的规则((((1 1)当两个操作式均为数值型,按数值大小比较当两个操作式均为数值型,按数值大小比较当两个操作式均为数值型,按数值大小比较当两个操作式均为数值型,按数值大小比较2 2))))字字字字符符符符串串串串比比比比较较较较, ,则则则则按按按按字字字字符符符符的的的的ASCIIASCII码码码码值值值值从从从从左左左左到到到到右右右右一一一一一一一一比比比比 较较较较, ,直到出现不同的字符为止直到出现不同的字符为止直到出现不同的字符为止直到出现不同的字符为止. .。
" ABCDE " > " ABRA " " ABCDE " > " ABRA " 结果为结果为结果为结果为 False False ((((3 3))))数值型与可转换为数值型的数据比较,数值型与可转换为数值型的数据比较,数值型与可转换为数值型的数据比较,数值型与可转换为数值型的数据比较, 如:如:如:如:29>"189" 29>"189" ,按数值比较,结果为,按数值比较,结果为,按数值比较,结果为,按数值比较,结果为FalseFalse4 4))))数值型与不能转换成数值型的字符型比较数值型与不能转换成数值型的字符型比较数值型与不能转换成数值型的字符型比较数值型与不能转换成数值型的字符型比较: : 如:如:如:如:77>" 77>" sdcdsdcd" " ,,,,不能比较,系统出错不能比较,系统出错不能比较,系统出错不能比较,系统出错4. 4. 逻辑运算符逻辑运算符逻辑运算符逻辑运算符 逻逻逻逻辑辑辑辑运运运运算算算算符符符符对对对对逻逻逻逻辑辑辑辑量量量量进进进进行行行行逻逻逻逻辑辑辑辑运运运运算算算算,,,,除除除除NotNot外外外外都都都都是是是是对对对对两两两两个逻辑量运算个逻辑量运算个逻辑量运算个逻辑量运算, ,结果为逻辑值。
结果为逻辑值结果为逻辑值结果为逻辑值运算符说明优先级说明例结果Not取反1当操作数为假时,结果为真Not FTAnd与2两个操作数均为真时,结果才为真T And FFOr或3两个操作数为一真一假时,结果为真T Or FF Or FTFXor异或3两个操作数为一真一假时,结果为真T Or FTEqv等价4两个操作数相同时,结果才为真T Eqv FF Eqv FFTImp蕴含5第一个操作数为真,第二个操作数为假时,结果才为假,其余结果均为真T Imp FT Imp TFT((((1 1))))逻逻逻逻辑辑辑辑运运运运算算算算符符符符的的的的优优优优先先先先级级级级不不不不相相相相同同同同,,,,NotNot((((逻逻逻逻辑辑辑辑非非非非))))最最最最高高高高,,,,但但但但 它低于关系运算,它低于关系运算,它低于关系运算,它低于关系运算,ImpImp((((逻辑蕴含)最低逻辑蕴含)最低逻辑蕴含)最低逻辑蕴含)最低2 2))))VBVB中中中中常常常常用用用用的的的的逻逻逻逻辑辑辑辑运运运运算算算算符符符符是是是是NotNot、、、、AndAnd和和和和OrOr。
它它它它们们们们用用用用于于于于将将将将多个关系表达式进行逻辑判断多个关系表达式进行逻辑判断多个关系表达式进行逻辑判断多个关系表达式进行逻辑判断 例例例例如如如如,,,,数数数数学学学学上上上上表表表表示示示示某某某某个个个个数数数数在在在在某某某某个个个个区区区区域域域域时时时时用用用用表表表表达达达达式式式式:::: 10≤X<2010≤X<20,用,用,用,用VBVB程序中应写成:程序中应写成:程序中应写成:程序中应写成: (X>=10) And (X<20)(X>=10) And (X<20)((((3 3))))参参参参与与与与逻逻逻逻辑辑辑辑运运运运算算算算的的的的量量量量一一一一般般般般都都都都应应应应是是是是逻逻逻逻辑辑辑辑型型型型数数数数据据据据,,,,如如如如果果果果参参参参与与与与逻逻逻逻 辑辑辑辑运运运运算算算算的的的的两两两两操操操操作作作作数数数数是是是是数数数数值值值值量量量量,,,,则则则则以以以以数数数数值值值值的的的的二二二二进进进进制制制制值值值值逐逐逐逐位位位位进进进进行行行行逻逻逻逻辑运算(辑运算(辑运算(辑运算(0 0当当当当False,1False,1当当当当TrueTrue)。
? 4 and 3 ? 4 and 3 结果为结果为结果为结果为0 0 ? 4 or 3 ? 4 or 3 结果为结果为结果为结果为7 72.4.2 表达式表达式1.表达式的组成.表达式的组成 表达式由常量、变量、函数、运算符以及圆表达式由常量、变量、函数、运算符以及圆表达式由常量、变量、函数、运算符以及圆表达式由常量、变量、函数、运算符以及圆括号、(),按照一定的规则组成,不管表达式括号、(),按照一定的规则组成,不管表达式括号、(),按照一定的规则组成,不管表达式括号、(),按照一定的规则组成,不管表达式的形式如何,都会计算出一个结果,该结果的类的形式如何,都会计算出一个结果,该结果的类的形式如何,都会计算出一个结果,该结果的类的形式如何,都会计算出一个结果,该结果的类型由参与运算的数据和运算符决定型由参与运算的数据和运算符决定型由参与运算的数据和运算符决定型由参与运算的数据和运算符决定2 2.表达式的书写规则:.表达式的书写规则:.表达式的书写规则:.表达式的书写规则:uu运算符不能相邻例运算符不能相邻。
例运算符不能相邻例运算符不能相邻例a+-ba+-b是错误的是错误的是错误的是错误的uu表达式中的每个字符没有高低、大小的区别表达式中的每个字符没有高低、大小的区别表达式中的每个字符没有高低、大小的区别表达式中的每个字符没有高低、大小的区别uu只能使用圆括号,可以多重使用,圆括号必须成对出现只能使用圆括号,可以多重使用,圆括号必须成对出现只能使用圆括号,可以多重使用,圆括号必须成对出现只能使用圆括号,可以多重使用,圆括号必须成对出现uuVBVB表达式中的乘号表达式中的乘号表达式中的乘号表达式中的乘号"*""*"不能省略不能省略不能省略不能省略uu能用内部函数的地方尽量使用内部函数能用内部函数的地方尽量使用内部函数能用内部函数的地方尽量使用内部函数能用内部函数的地方尽量使用内部函数uu 数学式数学式数学式数学式 写成写成写成写成VBVB表达式为:表达式为:表达式为:表达式为: ((((- -b+sqrb+sqr((((b^2-4*a*cb^2-4*a*c))))))))/ /((((2*a2*a))))3 3.关系表达式和逻辑表达式.关系表达式和逻辑表达式.关系表达式和逻辑表达式.关系表达式和逻辑表达式 当当当当使使使使用用用用关关关关系系系系运运运运算算算算符符符符或或或或逻逻逻逻辑辑辑辑运运运运算算算算符符符符时时时时,,,,表表表表达达达达式式式式又又又又称称称称为为为为关关关关系表达式或逻辑表达式。
系表达式或逻辑表达式系表达式或逻辑表达式系表达式或逻辑表达式关系运算一般表示一个简单的条件关系运算一般表示一个简单的条件关系运算一般表示一个简单的条件关系运算一般表示一个简单的条件 例如:例如:例如:例如:age>20 age>20 、、、、score>80score>80、、、、x+y>zx+y>z等逻辑表达式表示较复杂的条件逻辑表达式表示较复杂的条件逻辑表达式表示较复杂的条件逻辑表达式表示较复杂的条件 例例例例如如如如::::数数数数学学学学中中中中的的的的0 转化成精度高的类型转化成精度高的类型转化成精度高的类型 关关关关系系系系表表表表达达达达式式式式和和和和逻逻逻逻辑辑辑辑表表表表达达达达式式式式的的的的结结结结果果果果是是是是逻逻逻逻辑辑辑辑值值值值::::TrueTrue、、、、FalseFalse5 5....优先级优先级优先级优先级圆括号圆括号圆括号圆括号> >算术运算符算术运算符算术运算符算术运算符> >关系运算符关系运算符关系运算符关系运算符> >逻辑运算符逻辑运算符逻辑运算符逻辑运算符 ?Hex(2002)?Hex(2002)7D27D2?Hex(2002.12)?Hex(2002.12)7D27D2?Hex(2002.56) (35?Hex(2002.56) (35页四舍五入取整页四舍五入取整页四舍五入取整页四舍五入取整) )7D37D3((((1 1))))当当当当一一一一个个个个表表表表达达达达式式式式中中中中出出出出现现现现多多多多种种种种运运运运算算算算符符符符时时时时,,,,首首首首先先先先进进进进行行行行算算算算术术术术运运运运算算算算符符符符,,,,接接接接着着着着处处处处理理理理字字字字符符符符串串串串连连连连接接接接运运运运算算算算符符符符,,,,然然然然后后后后处处处处理理理理关关关关系系系系运运运运算算算算符符符符,,,,最最最最后后后后处处处处理理理理逻逻逻逻辑辑辑辑运运运运算算算算符符符符,,,,在在在在各各各各类类类类运运运运算算算算中中中中再再再再按按按按照照照照相相相相应应应应的的的的优优优优先先先先次次次次序序序序进行。 进行2 2))))可可可可以以以以用用用用括括括括号号号号改改改改变变变变优优优优先先先先顺顺顺顺序序序序,,,,强强强强令令令令表表表表达达达达式式式式的的的的某某某某些些些些部部部部分分分分优优优优先先先先运运运运行行行行括括括括号号号号内内内内的的的的运运运运算算算算总总总总是是是是优优优优先先先先于于于于括括括括号号号号外外外外的的的的运运运运算算算算对对对对于于于于多多多多重重重重括号,总是由内到外括号,总是由内到外括号,总是由内到外括号,总是由内到外 2..5 常用内部函数常用内部函数VBVB提供了大量的内部函数供用户调用提供了大量的内部函数供用户调用提供了大量的内部函数供用户调用提供了大量的内部函数供用户调用函数的一般调用格式:函数的一般调用格式:函数的一般调用格式:函数的一般调用格式:函数名(函数名(函数名(函数名([ [参数表参数表参数表参数表] ]))))说明:说明:说明:说明: uu使用库函数要注意参数的个数及其参数的数据类型使用库函数要注意参数的个数及其参数的数据类型使用库函数要注意参数的个数及其参数的数据类型使用库函数要注意参数的个数及其参数的数据类型uu要注意函数的定义域(自变量或参数的取值范围)要注意函数的定义域(自变量或参数的取值范围)要注意函数的定义域(自变量或参数的取值范围)要注意函数的定义域(自变量或参数的取值范围) 例如:例如:例如:例如: sqr(xsqr(x) ) 要求:要求:要求:要求: x>=0x>=0uu要注意函数的值域。 要注意函数的值域要注意函数的值域要注意函数的值域 如如如如::::exp(23773) exp(23773) 的的的的值值值值就就就就超超超超出出出出实实实实数数数数在在在在计计计计算算算算机机机机中中中中的的的的表表表表示示示示 范围2.5.1 数学函数数学函数e为底的指数函数,即为底的指数函数,即e函数名含义例结果Abs(N)取绝对值Abs(-3.5)3.5Cos(N)余弦函数Cos(0)1Exp(N)Exp(3)20.086Log(N)以e为底的自然对数Log(10)2.302585092994Rnd[(N)]产生随机数Rnd0~1之间的数Sin(N)正弦函数Sin(0)0Sgn(N)符号函数Sgn(-3.5)-1Sqr(N)平方根Sqr(9)3Tan(N)正切函数Tan(0)02.5.2 转换函数转换函数函数名功能例结果Asc(C)字符转换成ASCII码值Asc("A")65Chr$(N)ASCII码值转换成字符Chr$(65)"A"Fix(N)截尾取整Fix(-3.5)-3Hex[$](N)十进制转换成十六进制Hex(100)64Int(N)求小于或等于N的最大整数Int(-3.5)Int(3.5)-43Lcase$(C)大写字母转为小写字母Lcase$("ABC")"abc"Oct[$](N)十进制转换成八进制Oct$(100)144Str$(N)数值转换为字符串Str$(123.45)" 123.45 "Ucase$(C)小写字母转为大写字母Ucase$("abc")"ABC"Val(C)数字字符串转换为数值Val("123AB")123 ((((1 1)要区别两个取整函数)要区别两个取整函数)要区别两个取整函数)要区别两个取整函数intint() ()和和和和fix()fix() Fix(N) Fix(N)为截断取整,即去掉小数后的数。 为截断取整,即去掉小数后的数为截断取整,即去掉小数后的数为截断取整,即去掉小数后的数 Int(NInt(N) )不大于不大于不大于不大于N N的最大整数的最大整数的最大整数的最大整数 N>0 fix(N)N>0 fix(N)与与与与int(Nint(N) ) 相同,当相同,当相同,当相同,当N<0N<0时,时,时,时, int(Nint(N) ) 与与与与fix(N) fix(N) -1-1相等 例如:例如:例如:例如: Fix(9.59) =9, Int(9.59) =9Fix(9.59) =9, Int(9.59) =9 Fix(-9.59) =-9, Int(-9.59) =-10 Fix(-9.59) =-9, Int(-9.59) =-10 ?round(4.89) 5 ?round(4.89) 5 ((((2 2))))Asc("AbcdAsc("Abcd") ") 值为:值为:值为:值为: 65 65 (只取首字母的(只取首字母的(只取首字母的(只取首字母的AsciiAscii值)值)值)值) ((((3 3))))Val("abc123") Val("abc123") 值为:值为:值为:值为:0, 0, Val("1.2sa10") Val("1.2sa10") 值为值为值为值为1.21.2 Val( ) Val( )函数只将最前面的数字字符转换为数值。 函数只将最前面的数字字符转换为数值函数只将最前面的数字字符转换为数值函数只将最前面的数字字符转换为数值2.5.3 字符串函数字符串函数 VBVB具有很强的字符串处理能力具有很强的字符串处理能力具有很强的字符串处理能力具有很强的字符串处理能力 如如如如果果果果返返返返回回回回是是是是字字字字符符符符型型型型,,,,则则则则函函函函数数数数后后后后有有有有"$""$"字字字字符符符符当当当当然一般也可以不写,习惯都写上然一般也可以不写,习惯都写上然一般也可以不写,习惯都写上然一般也可以不写,习惯都写上例如:例如:例如:例如: len("Thislen("This is a book!") 15 is a book!") 15 Left$("ABCDEFG",3) "ABC" Left$("ABCDEFG",3) "ABC" Mid$("ABCDEFG",2,3) Mid$("ABCDEFG",2,3) "BCD" InStr(2, "ABCDEFGEF", "EF") 5((第一次出现的位置)第一次出现的位置)?Ltrim( " Microsoft Visual ")?right("abcdefghi",5)Efghi?string(5,66)BBBBB2.5.4 2.5.4 日期与时间函数日期与时间函数日期与时间函数日期与时间函数 日期与时间函数提供时间和日期信息。 日期与时间函数提供时间和日期信息日期与时间函数提供时间和日期信息日期与时间函数提供时间和日期信息 ?now?now2007-3-30 11:01:13 2007-3-30 11:01:13 ?day(now)?day(now)30 30 ?month(now)?month(now) 3 3 ?year(now)?year(now) 2007 2007 ?weekday(now)?weekday(now) 6 6 ? ?rndrnd .7055475 .7055475 (1)DateAdd(1)DateAdd增减日期函数增减日期函数增减日期函数增减日期函数形式:形式:形式:形式:DateAddDateAdd((((要要要要增增增增减减减减日日日日期期期期形形形形式式式式,,,,增增增增减减减减量量量量,,,,要要要要增增增增减减减减的日期变量)的日期变量)的日期变量)的日期变量)作用:对要增减的日期变量按日期形式做增减作用:对要增减的日期变量按日期形式做增减作用:对要增减的日期变量按日期形式做增减作用:对要增减的日期变量按日期形式做增减例如:例如:例如:例如:DateAdd("ww",2,#2/14/2000#)DateAdd("ww",2,#2/14/2000#)表表表表示示示示在在在在指指指指定定定定的的的的日日日日期期期期上上上上加加加加2 2周周周周,,,,所所所所以以以以函函函函数数数数的的的的结结结结果果果果为为为为::::#2/28/2000##2/28/2000#。 (2)DateDiff(2)DateDiff函数函数函数函数形式:形式:形式:形式:DateDiffDateDiff( (要间隔日期形式,日期要间隔日期形式,日期要间隔日期形式,日期要间隔日期形式,日期1 1,日期,日期,日期,日期2)2)作用:两个指定的日期按日期形式相差的日期作用:两个指定的日期按日期形式相差的日期作用:两个指定的日期按日期形式相差的日期作用:两个指定的日期按日期形式相差的日期例如:例如:例如:例如: ? ?DateDiff("m",#2/14/2000#,#3/8/2000#)DateDiff("m",#2/14/2000#,#3/8/2000#)表示两个日期之间相差几个月表示两个日期之间相差几个月表示两个日期之间相差几个月表示两个日期之间相差几个月, ,结果为结果为结果为结果为1 1 ?DateDiff("d",#8/26/1980#,#3/22/2007#) ?DateDiff("d",#8/26/1980#,#3/22/2007#)2.5.5 2.5.5 格式输出函数格式输出函数格式输出函数格式输出函数 使用格式:使用格式:使用格式:使用格式: Format$Format$((((表达式表达式表达式表达式[ [,,,," "格式字符串格式字符串格式字符串格式字符串"]"])))) 功能:按用户指定格式返回表达式,常用在功能:按用户指定格式返回表达式,常用在功能:按用户指定格式返回表达式,常用在功能:按用户指定格式返回表达式,常用在printprint方法中。 方法中 使用形式:使用形式:使用形式:使用形式: print Format$print Format$((((表达式表达式表达式表达式[ [,,,," "格式字符串格式字符串格式字符串格式字符串"]"])))) 表达式:可以是数值、日期或字符串型表达式表达式:可以是数值、日期或字符串型表达式表达式:可以是数值、日期或字符串型表达式表达式:可以是数值、日期或字符串型表达式格格格格式式式式字字字字符符符符串串串串::::表表表表示示示示输输输输出出出出表表表表达达达达式式式式时时时时采采采采用用用用的的的的输输输输出出出出格格格格式式式式不不不不同同同同数数数数据据据据类型所采用的格式字符串是不同的类型所采用的格式字符串是不同的类型所采用的格式字符串是不同的类型所采用的格式字符串是不同的((1)数值型数据格式化)数值型数据格式化 对对于于符符号号::0与与#,,当当数数值值的的实实际际位位数数比比格格式式控控制制给给定定的的位位数数多多时时,,系系统统将将按按四四舍舍五五入入返回给定的位数返回给定的位数 如:如:?Format(3.14159, "###.###") 其值为其值为 3.142 ((2)日期和时间型数据格式化)日期和时间型数据格式化 缺省日期格式为:缺省日期格式为:"mm/dd/yy", 时间格式:时间格式:"hh:mm:ss "((3))字符串类型数据格式化字符串类型数据格式化 2.5.6 Shell函数函数 在在在在VBVB中中中中,,,,可可可可以以以以调调调调用用用用在在在在DOSDOS下下下下或或或或WindowsWindows下下下下运运运运行行行行的的的的应应应应用程序。 用程序 函数调用形式:函数调用形式:函数调用形式:函数调用形式: ID=Shell( ID=Shell( FileNameFileName [, [,WindowTypeWindowType] )] ) 说说说说明明明明::::执执执执行行行行一一一一个个个个可可可可执执执执行行行行文文文文件件件件,,,,返返返返回回回回一一一一个个个个Variant Variant (Double)(Double),,,,如如如如果果果果成成成成功功功功的的的的话话话话,,,,代代代代表表表表这这这这个个个个程程程程序序序序的的的的任任任任务务务务IDID,,,,它它它它是是是是一一一一个个个个唯唯唯唯一一一一的的的的数数数数值值值值,,,,用用用用来来来来指指指指明明明明正正正正在在在在运运运运行行行行的的的的程程程程序序序序若若若若不不不不成成成成功功功功,,,,则则则则会会会会返返返返回回回回 0 0 FileName::是要执行的应用程序名字符串,是要执行的应用程序名字符串,包括盘符、路径,它必须是可执行的文件包括盘符、路径,它必须是可执行的文件。 WindowType::为整型值,表示执行应用为整型值,表示执行应用程序打开的窗口类型程序打开的窗口类型例如:例如:例如:例如:' ' 调用执行调用执行调用执行调用执行WindowsWindows系统中的记事本系统中的记事本系统中的记事本系统中的记事本i = Shell("C:\WINDOWS\NOTEPAD.EXE")i = Shell("C:\WINDOWS\NOTEPAD.EXE") ( (直接在立即窗口下输入直接在立即窗口下输入直接在立即窗口下输入直接在立即窗口下输入, ,前面不用加问号前面不用加问号前面不用加问号前面不用加问号) )也可按过程形式调用:也可按过程形式调用:也可按过程形式调用:也可按过程形式调用:Shell "C:\WINDOWS\NOTEPAD.EXE" Shell "C:\WINDOWS\NOTEPAD.EXE" 注注注注意意意意: :上上上上面面面面指指指指定定定定的的的的执执执执行行行行文文文文件件件件,,,,可可可可能能能能因因因因不不不不同同同同计计计计算算算算机机机机系系系系统统统统,,,,文文文文件的路径有所不同件的路径有所不同。 件的路径有所不同件的路径有所不同。












