Download presentation
Presentation is loading. Please wait.
1
四 VBScript编程基础
2
内容提要 VBScript的全称是Microsoft Visual Basic Scripting Edition,它是专业编程语言Visual Basic的子集。 VBScript编程是ASP的基础,本章主要介绍VBScript的基本语法以及VBScript的一些重要的函数的使用。
3
脚本语言概述 在网页编程中,常用脚本语言有3种:JavaScript、VBScript和Jscirpt。ASP并不是脚本语言,ASP需要使用脚本语言才能工作。在ASP程序中常用的脚本语言有VBScript和JScript。系统默认的语言为VBScript语言,可以通过IIS的选项将默认的语言设置为JScirpt脚本语言。 VBScript与Visual Basic语言有密切关系。如果熟悉Visual Basic,将会发现VBScript很容易学习和使用。VBScript可以认为是Microsoft Visual Basic的简化版本。
4
客户端脚本标记 在客户端中使用VBScript,只需在书写脚本的地方插入格式标记:
<Script Language="VBScript"> …… </Script> 在<Script Language=“VBScript”>和</Script>之间写VBScript代码,其中language=“VBScript”可以简写为:language=“VBS”。 (参看示例)
5
服务器端脚本标记 (1)使用@Language指令 <%@language=“VBScript”%>
<Script language=“VBScript” Runat=“Server”> …… </Script> (3)使用IIS 设置
6
VBScript基本语法 VBScript是一种脚本语言,脚本语言的语法比较简单。
可以在HTML文件中直接嵌入VBScript脚本,从而能够扩展HTML语言。
7
VBScript的数据类型 VBScript 只有一种数据类型,称为Variant,也叫做变体类型。Variant类型可以在不同的场合代表不同的数据类型。 例如Variant类型用于数字时,将作为数值处理;用于字符串时,将作为字符串处理。声明Variant变量使用 Dim 语句,例如: Dim V1 声明多个变量时,使用逗号分隔变量。例如: Dim Top, Bottom, Left, Right
8
Variant 包含的数据子类型 子类型 描述 Empty
Null 不包含任何有效数据的 Variant。 Boolean 包含 True 或 False。 Byte 包含 0 到 255 之间的整数。 Integer 包含 -32,768 到 32,767 之间的整数 Currency 表示-922,337,203,685, 到 922,337,203,685, 的数 Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。 Single 单精度浮点数 Double 包含双精度浮点 String 包含字符串 Date(Time) 包含表示日期(时间)的数字 Object 包含对象 Error 包含错误号
9
VBScript常量 常数是具有一定含义的名称,用于代替数字或字符串,它的值从不改变。可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋值。例如: Const MyString = "这是一个字符串。" Const MyAge = 49
10
VBScript变量 除了使用Dim定义变量以外,还有一种方式是直接在Script 中使用变量,不用使用Dim语句进行定义。
为了强制数据必须声明,使用Option Explicit语句,并将其作为 Script 的第一条语句。
11
命名规则 遵循 VBScript 的标准命名规则,变量命名必须遵循: 第一个字符必须是字母 不能包含嵌入的句点 长度不能超过 255 个字符
在被声明的作用域内必须唯一
12
命名规则 通过变量的名称就能知道该变量的子类型 子类型 前缀 例子 Integer int intAge Long lng lngSum
Currency cur curSalary Single sng sngTotal Double dbl dblTotal Byte byt bytRasterData Boolean bln blnMarried String str strUserName Date dt dtStartTime Object obj objCurrent
13
数组 有时候需要创建包含一系列值的变量,称为数组变量。数组变量和一般变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号()。比如声明了一个包含11个元素的一维数组: Dim person(10) Person(0) = “Mike” Person(1) = “John” Person(2) = “Petter”
14
使用动态数组 重新调整动态数组大小的次数是没有任何限制的,但是应注意:将数组调小时,将会丢失被删除元素的数据。
dim class_name() redim class_name(2) class_name(0) = “教技09” class_name(1) = “教技10” class_name(2) = “教技11” redim preserve class_name(3) class_name(3) = “心理12”
15
常用的运算符 VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。 1、算术运算符
算术运算符就是日常的数学运算,如加(+)、减(-)、乘(*)、除(/)、整除(\)、取模(Mod)和指数(^)。 2、连接运算符 连接运算符是将两个字符表达式连接起来,生成一个新的字符串。连接运算符有“+”和“&”。
16
常用的运算符 3、关系运算符 关系运算符用来比较两个表达式的值的大小,如大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(<>)和等于(=)。 关系运算符的结果是逻辑型值True或者False,关系运算符可以用于数值间的比较,页可以用于字符串间的比较。当用作字符串间比较的时候,将按照ASCII码值进行比较。 4、逻辑运算符 逻辑运算符通常称为布尔运算符,专门用于逻辑值之间的运算。 5、运算符的优先顺序 当一个表达式包含有多个运算符的时候,执行运算的符号有一个固定的计算顺序,为:算术运算符> 连接运算符> 关系运算符> 逻辑运算符。
17
VBScript的三种控制结构 计算机语言有三种基本的结构:顺序结构,分支结构和循环结构。 任何的算法都可以通过这三种结构实现。
18
顺序结构 最基本的一种语句结构,其它两种结构都会嵌套顺序结构的语句。 (1)赋值语句: 变量名=表达式
Set obj = {exp | new classname | Nothing } (2)注释语句 ‘注释语句
19
顺序结构 (3)语句分隔符:两种情况 dim a,b,temp tem=a:a=b:b=temp
Str = “select * from”&tablename&_ “where uname=’ “&user&”’”
20
顺序结构 (4)基本输入/输出函数 InputBox()函数:输入函数,带有一个文本框的对话框,函数原型为
InputBox(prompt[, title][,default][,xpos][,ypos][,helpfile,context])
21
顺序结构 MsgBox()函数:输出函数,用对话框显示输出信息,函数原型为
MsgBox(prompt[, buttons][, title][, helpfile, context]) (函数具体用法参看帮助文件)
22
分支结构(选择结构) VBScirpt提供了两种分支语句,If...Then...Else 语句 和Select Case 语句
If condition Then statements [Else statements ]
23
分支结构 (2)块选择结构(多行) If condition1 Then [statements1]
[ElseIf condition2 Then [statements2] . . . [Else [statementsn]] End If
24
分支结构 Select Case 表达式 Case 值1 [语句块1] Case 值2 [语句块2] . . . [Case Else
语句块n] End Select
25
循环结构 循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。在 VBScript 中可使用4种格式的循环语句。 Do...Loop: 当(或直到)条件为 True 时循环。 While...Wend: 当条件为 True 时循环。 For...Next: 指定循环次数,使用计数器重复运行语句。 For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行。
26
循环结构 Do...Loop循环:两种情况 Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
27
循环结构 While...Wend循环:与Do while ... Loop类似
While condition [statements] Wend
28
循环结构 For...Next循环:用于循环次数已知情况,使用计数器变量,该变量每一次循环增加或减少
For counter = start To end [Step 步长] [statements] [Exit For] [statements] Next
29
循环结构 For Each...Next循环:对于数组中每个元素或对象集合中的每一项重复执行一组语句。
For Each element In group [statements] [Exit For] [statements] Next [element]
30
VBScript的过程和函数 在 VBScript 中,可调用的程序段被分为两类: Sub 过程和 Function 函数。
31
Sub过程 Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,Sub过程不可以有返回值。
… End Sub
32
Sub过程 定义一个Sub过程后,就可以在程序代码中调用它。Sub过程的调用有两种方式。一种是使用Call语句,它要求将所有参数包含在括号之中,语法结构为: Call Sub过程名(参数1, 参数2,…) 另一种是直接使用子过程名,Call关键字可以省略。只需要输入过程名及其所有参数值,参数值之间使用逗号分隔,语法结构为: 过程名 参数1, 参数2,…
33
Function函数 Function函数是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。
Function 函数与 Sub 过程类似,但是 Function 函数可以返回值,Sub过程不能有返回值。 Function 函数可以使用输入参数。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 。
34
容错语句 一般来说,当程序发生错误的时候,程序会终止运行,并在页面上显示错误信息。有时候,不希望程序终止,也不希望把程序错误暴露给访问者,这就需要使用容错语句。基本语法格式为: On Error Resume Next 如果碰到错误,就跳过去继续执行下一句。
35
VBScript重要函数 除了可以使用自己编写的函数以外,系统还提供了许多重要的函数,这些函数可以在程序中直接使用。
1、字符串处理函数; 2、转换函数; 3、日期和时间函数; 4、数学函数; 5、检验函数。 (在实际编写程序的时候,其他可以查阅VBScript语言参考)
36
字符串处理函数 函数 功能 用法 Len(string) 返回字符串string的长度 比如:Len("hello")返回5。
Trim(string) 将字符串string前后的空格去掉 比如:Trim(" hello ")返回"hello"。 Mid(str, start, len) 从字符串str的start位置取长度为len的子字符串 比如:Mid("VB Script is fun!", 4, 6) 返回"Script"。 Left(str, len) 从左边取len个字符 比如:Left(hello", 3)返回"hel"。 Right(str, len) 从右边取len个字符 比如:Right(hello", 3)返回"llo"。 Instr(str1, str2) 返回str2在str1中第一次出现的位置,两字符串相同返回0 比如:Instr("hello", "ell")返回2 Split(str1, 符号) 根据符号将str1拆分成一维数据 比如:Split("VBScriptXisXfun!", "X")返回数据元素分别为:VBScript,is和fun。 Replace(str1, str2,str3) 将str1中的str2全部换成str3 比如:Replace("VBVB", "B" , "C")返回"VCVC"。
37
转换函数 函数 功能 用法 CStr(Variant) 将变量转换成字符型 比如:CStr(1234)返回"1234"。
CDate(Variant) 将变量转换为日期型 比如:CDate(" ")返回日期型的变量 CInt(Variant) 将变量转换为整数类型 比如:CInt("2008")返回整数2008 CLng(Variant) 将变量转换为长整数类型 比如:CLng("200800")返回长整型数 CSng(Variant) 将变量转换为Single类型 比如:CSng("2008.8")返回Single类型 CDbl(Variant) 将变量转换为Double类型 比如:CDbl ("2008.8")返回Double类型 CBool(Variant) 将变量转换为布尔型 比如:CDbl ("True")返回真值
38
日期和时间函数 函数 功能 用法 Now() 得到系统当前的日期和时间 比如:Now()返回当前日期和时间 Date() 得到系统的日期
Time() 得到系统的时间 比如:Time()返回“时: 分: 秒” Year(Date) 取得Date中的年 比如:Year(# #)返回2008 Month(Date) 取得Date中的月 比如:Month(# #)返回10 Day(Date) 取得Date中的日 比如:Day(# #)返回1 Hour(Time) 取得Time中的小时 比如:Hour(#10:20:30#)返回10 Minute(Time) 取得Time中的分钟 比如:Minute(#10:20:30#)返回20 Second(Time) 取得Time中的秒 比如:Minute(#10:20:30#)返回30 WeekDay(Date) 取得个定日期是星期几 比如:如果是星期天返回1,如果是星期一返回2,以此类推。
39
日期和时间函数 DateDiff("str",d1,d2) 计算两个日期d1和d2之间的间隔
如果str是yyyy,则计算年间隔,是m计算月间隔,d计算日间隔,ww计算星期间隔,h代表小时间隔,s代表秒间隔。 DateAdd("str",d1,d2) 返回d2加上d1,其中d1的单位根据str的不同而不同 如果DateAdd("yyyy",15,Date())则返回15年以后的日期。如果yyyy变成d,则计算15天以后的日期。 FormatDateTime() FormatDateTime(d1, vbShortDate) 将d1转化为短日期的形式 FormatDateTime(d1, vbLongDate) 将d1转化为长日期的形式 FormatDateTime(t1, vbShortTime) 将t1转化为短时间的形式 FormatDateTime(t1, vbLongTime) 将t1转化为长时间的形式
40
数学函数 函数 功能 用法 Abs(num) 返回绝对值 比如:Abs(-1)的值为1 Sqr(num) 返回一个数的平方根
Sin(num) 返回正弦值 比如:Sin( )的值接近0 Cos(num) 返回余弦值 比如:Cos( )的值为-1 Tan(num) 返回正切值 比如:Tan( )的值接近0 Atn(num) 返回反正切值 比如:Atn(0)的值为0 Log(num) 返回一个数的自然对数值 比如:Log(2)的值为0.693 Rnd() 返回一个0到1之间的随机数 比如:Rnd()的值为 Ubound(数组名, 维数) 返回数组某维的最大下标 如果只有一维可以省略维数 Lbound(数组名, 维数) 返回数组某维的最小小标
41
检验函数 函数 功能 用法 VarType(Variant) 检查变量Variant的值
如果返回0表示空,2表示整数,7表示日期,8表示字符串,11表示布尔变量,8192表示数组 IsNumeric(Variant) 检查是否为数字类型 IsNumeric(11)返回true IsDate(Variant) 检查是否为日期型 IsDate(Date())返回true IsNull(Variant) 检查是否为Null值 IsNull(Null)返回true IsEmpty(Variant) 检查是否为空值 IsEmpty(Empty)返回true IsArray(Variant) 检查是否未数组 IsArray(数组名)返回true
42
小结 VBScript是ASP的编程基础,本章需要重点理解VBScript的基本的语法,理解函数和过程的定义和调用的方法,掌握一些重要函数的用法。
Similar presentations