第2章在ASP中使用VBScript本章要点:lVbscript的常量、变量lVbscript的控制转移和循环lVbscript中的过程lVbscript的浏览器及Err对象lVBScript事件处理和错误调试技术1、设置主脚本语言ASP主脚本语言是用来处理在分界符%和%内部的命令的语言。默认时,主脚本语言是VBScript,要设置单个页的主脚本语言,可将%@LANGUAGE%指令添加到.asp文件的开头。该指令的语法是:%@LANGUAGE=ScriptingLanguage%其中ScriptingLanguage就是所要设置的页的主脚本语言(源码网整理:)在服务器端运行,有两种方式方法一:%VBScript代码%方法二:ScriptLanguage=”VBScript”runat=”Server”VBScript代码/Script有时候也需要在客户端运行,语法如下:ScriptLanguage=”VBScript”VBScript代码/Script代码:2-1.asp%@language=VBScript%HTMLHEADTITLE第一个ASP例子/TITLE/HEADBODY现在时间是:%=time()%PScriptlanguage=VBScriptMsgBox欢迎进入VBScript世界!&chr(13)&今天是&%=cstr(date)%/Script%dimhrhr=hour(time)if((hr=0)and(hr6))thenmsg=又熬夜上网了!?!elseif((hr=6)and(hr12))thenmsg=上午好!elseif((hr=12)and(hr18))thenmsg=下午好!elsemsg=晚上还上网吗?endifresponse.write(msg)!asp的内置对象%用于获取用户端信息并输出/BODY/HTML说明:①ASP程序的文件扩展名为.asp。②代码中的HTML、HEAD、TITLE、BODY等都是HTML文件标记。③用%…%标记括起来的内容属于ASP程序代码,其中%@language=VBScript%表示该ASP程序是由VBScript语言撰写的。④用Scriptlanguage=VBScript…/Script标记括起来的内容属于VBScript程序代码,其中可以嵌套ASP程序代码。2.1VBScript的输入与输出1.信息框函数信息框函数(MsgBox)是常用的输出信息的函数,MsgBox函数在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。其语法格式为:变量=MsgBox(〈信息内容〉[,〈对话框类型〉[,〈对话框标题〉]])说明:①〈信息内容〉指定在对话框中出现的文本,在信息内容中使用硬回车符(CHR(13))可以使文本换行。对话框的高度和宽度随着信息内容的增加而增加,最多可有1024个字符。②〈对话框类型〉指定对话框中出现的按钮和图标,一般有三个参数。参数1——出现按钮值常量说明0vbOKOnly确定按钮1VbOKCancel确定和取消按钮2VbAbortRetryIgnore终止、重试和忽略按钮3VbYesNoCancel是、否和取消按钮4VbYesNo是和否按钮5VbRetryCancel重试和取消按参数2——图标类型值常量说明16VbCritical停止图标32VbQuestion问号(?)图标48VbExclamation感叹号(!)图标64VbInformation信息图标参数3——默认按钮值常量说明0vbDefaultButton1指定默认按钮为第一按钮256vbDefaultButton2指定默认按钮为第二按钮512vbDefaultButton3指定默认按钮为第三按钮③〈对话框标题〉指定对话框的标题。下述代码将显示如图3-3所示的对话框:msg=MsgBox(请确认输入的数据是否正确!,3+48+0,数据检查)④Msgbox()返回的值指明了在对话框中选择哪一个按钮Msgbox函数的返回值返回值常量按钮1vbOK确定按钮2vbCancel取消按钮3vbAbort终止按钮4vbRetry重试按钮5vbIgnore忽略按钮6vbYes是7vbNo否⑥如果省略了某些可选项,必须加入相应的逗号分隔符。⑦若不需要返回值,则可以使用MsgBox的命令形式:MsgBox〈信息内容〉[,〈对话框类型〉[,〈对话框标题〉]]MsgBox“输入有错,重输!”,3+48+0,“测试”注:不赋值时,不加括号。在程序运行的过程中,有时需要显示一些简单的信息如警告或错误等,此时可以利用“信息对话框”来显示这些内容。当用户接收到信息后,可以单击按钮来关闭对话框,并返回单击的按钮值。2.输入框函数输入框函数(InputBox)函数显示一个能接受用户输入的对话框,并返回用户在对话框中输入的信息。其语法格式为:变量=InputBox(〈提示信息内容〉[,〈对话框标题〉][,〈默认内容〉])说明:①〈提示信息内容〉指定在对话框中出现的文本。在〈信息内容〉中使用硬回车符(CHR(13))可以使文本换行。对话框的高度和宽度随着〈信息内容〉的增加而增加,最多可有1024个字符。②〈对话框标题〉指定对话框的标题③〈默认内容〉可以指定输入框的文本框中显示的默认文本。如果用户单击“确定”按钮,文本框中的文本(字符串)将返回到变量中,若用户单击“取消”按钮,返回的将是一个零长度的字符串。下述代码将显示如图所示的输入框:aa=InputBox(信息内容,对话框标题,默认内容)注意:如果省略了某些可选项,必须加入相应的逗号分隔符。2.2VBScript基础在开始学习脚本语言之前,首先理解一些简单的概念——变量、进程。变量是计算机内存中已命名的存储位置,其中包括了数字或字符串等数据,它使用户便于理解脚本操作的名称,为用户提供了一种存储、检索和操作数据的途径。程序是由一个或多个进程组成的。在VBScript中,进程就是“指令块”,只是为了简单的数据处理。2.2.1VBScript数据类型VBScript只有一种数据类型,称为Variant。Variant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。所以它也是VBScript中所有函数的返回值的数据类型。最简单的Variant可以包含数字或字符串信息。Variant用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。除简单数字或字符串以外,Variant可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其它日期或时间数据一起使用时,结果也总是表示为日期或时间。Variant也会按照最适用于其包含的数据的方式进行操作。表4-1Variant子类型子类型描述Empty未初始化的Variant。对于数值变量,值为0;对于字符串变量,值为零长度字符串()。Null不包含任何有效数据的VariantBoolean包含True或FalseByte包含0到255之间的整数Integer包含-32,768到32,767之间的整数Currency-922,337,203,685,477.5808到922,337,203,685,477.5807子类型描述Long包含-2,147,483,648到2,147,483,647之间的整数Single包含单精度浮点数,负数范围从-3.402823E38到-1.401298E-45,正数范围从1.401298E-45到3.402823E38Double包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308子类型描述Date(time)包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。String包含变长字符串,最大长度可为20亿个字符Object包含对象Error包含错误号可以使用转换函数来转换数据的子类型,用VarType函数返回数据的Variant子类型。4.2.2变量1.声明变量声明一个变量意味着告诉脚本引擎,有一个特定的变量,这样就可以在脚本中引用该变量。在VBScript中声明一个变量可以使用Dim语句、Public语句和Private语句。(1)Dim语句Dim语句用来明确地声明变量。与VisualBasic不同的是,它无需指明变量的数据类型。因为VBScript中,只用一种数据类型。格式:Dim变量名称例如:DimDegreet声明多个变量时,使用逗号分隔变量。例如:DimTop,Bottom,Left,Right(2)Redim语句Redim语句是专用来定义数组的。当需要根据数据的增加和删除来扩大或缩小数组的大小时,可通过Redim语句来实现。下面是一个扩大数组的简单格式:Dimdatanum…'程序代码RedimPreservedatanum(20)功能:RedimPreservedatanum(20)语句将数组的元素扩大到20。说明:1。默认的情况下,使用Redim语句的同时会清除数组中的所有值。而使用Preserve关键字可以将所有现存的数据保存下来,并添加新的空白单元;2。重新调整动态数组大小的次数是没有任何限制的。但是应注意:将数组的大小调小时,将会丢失被删除元素的数据。(3)Public关键字Public关键字用于定义全局型变量。格式:Public变量名称例如:Publica,b(4)Private关键字Private关键字可以定义局部变量(过程或函数中)。总结:lDim:整个脚本程序或过程、函数中。lRedim:整个脚本程序或过程、函数中。lPublic:整个脚本程序。lPrivate:过程或函数中。2.命名规则变量命名必须遵循VBScript的标准命名规则。变量命名必须遵循:l第一个字符必须是字母。l不能包含嵌入的句点。l长度不能超过255个字符。l在被声明的作用域内必须唯一。变量存在的时间称为存活期。1、脚本级变量:存活期从被声明的一刻起,直到脚本运行结束。2、过程级变量:其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。说明:在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。4.给变量赋值给变量赋值很简单,创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如:B=200A=“auther”5.标量变量和数组变量多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号()。下例声明了一个包含11个元素的一维数组:DimA(10)虽然括号中显示的数字是10,但由于在VBScript中所有数组都是基于0的,所以这个数组实际上包含11个元素。在数组中为数组的每个元素赋值。A(0)=256A(1)=324A(2)=100…A(10)=55与此类似,可以检索到所需的数组元素的数据。如:…SomeVariable=A(8)…数组并不仅限于一维。数组的维数最大可以为60。MyTable变量是一个有6行和11列的二维数组:DimMyTable(5,10)a变量是一个有3行和3列的二维数组:Dima(2,2)在二维数组中存储方式:行优先。源文件显示结果A(0,0)A(0,1)A(0,2)A(1,0)A(1,1)A(1,2)A(2,0)A(2,1)A(2,2)2.2.3常量常量是具有一定含义的名称,用于代替数字或字符串,其值从不改变。使用Const