1 / 97

第 3 章 脚本语言 VBScript

第 3 章 脚本语言 VBScript. 3.1 ASP 基本语法 3.2 VBScript 语法基础 3.3 VBScript 基本元素 3.4 VBScript 控制语句 3.5 过程与函数 3.6 基本输入输出函数 3.7 VBScript 常用函数. 1. 学习目标. 介绍了 VBScript 语言的基本知识,包括 VBScript 基本语法、 VBScript 基本元素、 VBScript 控制语句以及 VBScript 函数与过程等。通过本章学习,读者可以熟练利用 VBScript 脚本语言开发 ASP 程序。通过本章学习,读者可以达到以下目标:

niyati
Download Presentation

第 3 章 脚本语言 VBScript

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 脚本语言VBScript 3.1 ASP基本语法 3.2 VBScript语法基础 3.3 VBScript基本元素 3.4 VBScript控制语句 3.5 过程与函数 3.6 基本输入输出函数 3.7 VBScript常用函数 1

  2. 学习目标 • 介绍了VBScript语言的基本知识,包括VBScript基本语法、VBScript基本元素、VBScript控制语句以及VBScript函数与过程等。通过本章学习,读者可以熟练利用VBScript脚本语言开发ASP程序。通过本章学习,读者可以达到以下目标: • 掌握ASP程序的基本语法; • 掌握VBScript语法知识; • 了解常用的VBScript函数使用方法了解输入输出函数的使用。 2

  3. 3.1 ASP基本语法 3.1.1ASP语法 • 要区分HTML标记与普通文字,可以在HTML命令标记的两端加上"<"和">"分隔符。那么要区分服务器端的ASP脚本和其它字符,可以用"<%"和 "%>"包含ASP的命令加以区别,除此之外另有一个标准的HTML标记<script>,在编写服务器端的ASP脚本可以使用它来标识服务器端用户定义的函数、方法或模块,但须在<script>标记内指定属性runat="server",如果没指定runat="server"的将是会在客户端浏览器运行。这不是ASP了。 3

  4. 1. ASP命令 • ASP命令必须放在"<%"与"%>"之间,例如:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 2. ASP注释 • 为了养成良好的编程风格外,适度的注释不可少,ASP提供了两中注释方式: • 单引号“‘”,在单引号之后的这行文字都视为注释。例如:<%'这是注释的方式一'%>。 • rem 关键词,在REM后的文字,视为注释。例如<%rem 这是注释的方式二%>。 3. 赋值语句 • ASP中一般变量的赋值语句是 "=" • 而对象是用 set 语句来赋值的 4

  5. 4. 声明脚本语言 • ASP默认的语言是VBScript,如果你想要其它语言来编写ASP就要声明所用的语言了,通常用有三种办法: • 在IIS中设置你要使用的默认脚本语言; • 在ASP文件里声明,示例: • <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> • 上面的代码声明了当前文件使用VBSCRIPT语言,936中文编码,这个声明要写在第一行。 • 第三种声明方法: <script language="JScript" runat="server"> </script> 5

  6. 3.1.2建立ASP程序 • ASP程序就是扩展名为.asp的文本文件,是一个动态网页,其数据的获取是一个动态的,因此其创建过程和运行过程都与.html文档不一样。 1.创建站点 • 创建与管理站点的详细过程在第二章中已经介绍了,因为在动态网页中执行时需要用服务费,所示这里的重点是对测试服务器的设置。 【例3-1】创建一个能够运行动态asp程序的网站“ASPWeb”。 6

  7. eg3-1.asp <html> <head> <title>ASP日期时间显示</title> </head> <body> 欢迎大家访问我们的第一个ASP网站!<br> 今天是:<%=date()%>。<br> 时间是:<%=time()%>。<br> (请按F5刷新页时间) </body> </html> 2.创建ASP程序 • ASP的创建过程和HTML的创建过程基本类似,但是最后的文档扩展名和类型不一样。在上面站点的基础上创建ASP程序。 • 【例3-2】在例3-1的网站中创建一个能够利用VBScript脚本编写代码的ASP程序“3-1.asp”。 3. 配置服务器 • 要执行asp文档,必须首先设置服务器,这里假设我们的web服务器是IIS,并且已经安装好,这里配置IIS,其执行步骤为。(注意不同的系统步骤和操作过程可能有点不一样) • 【例3-3】创建并设置虚拟目录,配置例3-2中所创建的站点的运行环境。 7

  8. eg3-2vb.html <html> <head> <title>vbscript显示日期</title> </head> <body> 欢迎大家访问我们的第一个ASP网站!<br> <script language="vbscript“ > nowdate=date() document.write "今天是:"& nowdate & "。<br>" document.write "时间是:" & time() & "。<br>(请按F5刷新页时间)" </script> </body> </html> runat="server“ 文件扩展名为.asp 8

  9. 4. 运行ASP程序 • IIS配置好后,ASP的运行过程就比较简单了,现在回到Dreamweaver开发环境,选择“文件”→ “在阅读器中预览” →“IExplore6.0”(不同机器的环境不一样),执行结果如图3.8所示,并且我们可以按照提示,按F5后可以刷新时间。 9

  10. 3.2 VBScript语法基础 3.2.1 VBScript简介 • VBScript是Visual Basic Script的简称,即 Visual Basic 脚本语,有时也被缩写为VBS言,它是微软开发的一种脚本语言,VBScript是程序开发语言Visual Basic家族的最新成员,是VB的子集,语法也与VB相同。可以看作是VB语言的简化版,具有原语言容易学习的特性。 • VBScript是一种基于对象的脚本语言,脚本:是指嵌入到Web页中的程序代码,利用这些特殊的代码,可以控制网页的控件和对象,增强网页的灵活性和多样性。 • VBScript是目前最流行的脚本语言之一。既可在客户端进行编程,也可作为服务器端编程语言的脚本语言。 • 目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序,用于调试简单的VB语句非常方便,是asp动态网页默认的编程语言,配合asp内置对象和ADO对象,用户很快就能掌握访问数据库的asp动态网页开发技术。 10

  11. 3.2 VBScript语法基础 • VBScript是一种完全免费的解释性语言,一种客户端的网页设计语言,能够让网页设计者开发互动多媒体的网页内容。VBScript程序代码是直接插入在HTML文档中,也就是说VBScript必须放在HTML文档中,否者无法执行,并使用<script>标签标示出来。 • 在网页中使用脚本代码的基本语法格式如下: <script language="脚本语言名称" for=“对象名称”event=“事件名称”> <!-- 脚本代码 --> </script> 11

  12. 1.在HTML网页中使用VBScript • VBScript脚本代码必须放入<script>……</script)标记中,其格式为: <Script Language=“VBScript”>‘VBScript代码’</Script> 【例3.3】在HTML网页中弹出一个消息框,内容为“Hello,VBScript!”。 • 程序代码如下: <html><head> <title>在HTML网页中使用VBScript</title> </head> <body><script language="VBScript"> alert("Hello,VBScript!")</script> </body> </html> 12

  13. 2.在ASP网页中使用VBScript • 在ASP程序中,VBScript代码要放在<%...%>之间,或放在<script>…….</script>之间,但要在<script language=“vbscript”>中加入“runat=server”。格式为: • <%在服务器端运行的VBScript代码%> 或 <script language="vbscript" runat=server> 在服务器端运行的VBScript代码 </script> 13

  14. 2.在ASP网页中使用VBScript 【例3.2】在ASP页面中输出当前的日期。程序代码如下: <html><head><title>在ASP网页中使用VBScript</title></head><body><% Response.write"今天是"&Date%></body> </html> 或将代码<%Response.write"今天是"&Date%>改为如下形式: <script language="VBScript" runat=server> Response.write"今天是"&Date </script> 14

  15. 3.2.2 VBScript调用方式 • 在VBScript中,事件过程的调用方式有以下几种。 1. 通过过程名调用事件过程 • 在VBScript标记调用Sub语句来定义事件过程,并且要求过程名称必须由控件名称、下划线(_)以及事件名称组合而成。语法格式为: <script language="vbscript"> Sub对象名称_事件名称([参数列表]) 脚本代码 End Sub </script> 【例3-4】利用VBScript编写程序,程序功能通过过程实现,过程的调用利用过程名实现。 15

  16. 16

  17. 2. 通过控件的属性调用事件过程 • 在Script标记中定义一个通用的Sub过程,然后通过控件的相关属性来调用该过程。语法格式为: <script language="vbscript"> Sub MyPro([参数列表]) 脚本代码 End Sub </script> … <input type="button" name="Button1" value="将鼠标移动到我上面激活事件" onMouseOver=" MyPro "> 【例3-5】利用VBScript编写程序,程序功能通过过程实现,过程的调用是通过控件的属性调用事件过程实现。 17

  18. 3. 通过for/event属性调用处理过程 • 通过设置上面<script>的for属性来指定html页面中的对象,并通过event属性来指定该属性的事件,语法格式为: <script language="vbscript" for=“对象名称”event=“事件名称”> 脚本代码 </script> 【例3-6】利用VBScript编写程序,程序功能通过过程实现,过程的调用是通过for/event属性实现。 18

  19. 4. 在标记中直接编写脚本语句 • 若事件过程比较简单,则可以在定义元素的标记中直接编写脚本语句。若要包含多条语句,用冒号(:)分开各个语句。 【例3-7】利用VBScript编写程序,程序完成的功能直接编写在脚本语句中。 <html><head> <title>在标记中直接编写脚本语句</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body><center> <form name="form1" method="post" action=""> <input type="button" name="button1" id="button" value="热烈欢迎" onclick='msgbox "欢迎、欢迎、热烈欢迎!" ' language=vbscript> </form> <p>如果事件过程比较简单,则可以在定义元素的标记中直接编写脚本</p> </center> </body></html> 19

  20. 3.2.3基本事件 • VBScript采用的是面向对象、事件驱动编程机制。 • 对象:从面向对象程序设计的角度来看,对象是具有属性和方法的实体。 • 格式:对象名.属性(或方法) • 对象的动作则常常要触发事件。事件驱动指的就是通过事件的发生来推动指定程序的执行 。 • 要执行VBScript脚本,还要激活一个事件,而VBScript的事件比较多,常用的事件如P/76表3-1所示。 20

  21. 3.2.3基本事件 • 在VBScript中常用的事件有如下几种: (1)与系统有关的事件 onLoad:当一个网页被加载时触发。与body或frameset一起使用 onUnload:当一个网页被卸载时触发。 同上 onFocus:对象获得焦点时触发。 针对鼠标或键盘操作与表单中文本框,input,select onBlur:对象失去焦点时触发。 同上 21

  22. (2)与鼠标有关的事件 onClick:鼠标单击时触发。 onDblClick:鼠标单双击时触发。 onMouseDown:鼠标按下时触发。 onMouseUp:鼠标弹起时触发。 onMouseMove:鼠标移动时触发。 onMouseOver:鼠标移动到对象上时触发。 (3)与键盘有关的事件 onKeyPress:按键时触发。 onKeyDown:键被按下时触发。 onKeyUp:键弹起时触发。

  23. 3.3 VBScript基本元素 3.3.1 VBScript 数据类型 • 在VBScript,只有一种数据类型,称为Variant,也有叫做变体类型。Variant变量中保存的数据类型称为变量的子类型。 • 常见的字类型有字符串、数字、日期、逻辑类型。 Variable=2001 ‘ VBScript会将它当成整数对待 Variable=“2001” ‘ VBScript会将它当成字符串对待 Variable=“师范大学” ‘ VBScript会将它当成字符串对待 Variable=“2012-9-8” ‘ VBScript会将它当日期对待 具体包含的数据子类型见P/78表3-2

  24. 3.3.2 VBScript常量 1、直接常量(常数):直接常量也称为字面常量,指的是可以从字面形式上辨别出来的常量,其实就是我们通常说的常数。 • 常量类型: ①两边加双引号(")表示字符串常量。区别字符串常量和数字常量的标志就是看两边是否有双引号。 • 比如"100"看起来是数字,但实际上是字符串常量。 ②如果发生引号嵌套,就将内层引号替换为单引号(')或连续两个双引号(""), • 比如"ab'cd'ef"或"ab""cd""ef"。不过,内层如果是中文引号则不必替换。 ③两边加#号表示日期或时间常量。

  25. 2、符号常量 • 所谓符号常量,指的是用一个具有一定含义的直观的名字来代表一个数值、字符串或日期等常数。 • 分类: • 自定义常量: 须先声明,使用Const语句,语法如下: Const 常量名=值 例如: Const Day=“星期三” ´字符串常量,必须用双引号“ ”括起来 Const Date=#15/8/2008# ´日期常量,必须用#括起来 Const PI=3.1415926 ´数值常量 Const T=true ´逻辑型常量,只有true或false值 • 内置符号常量 • 如: vbLongDate就表示以长日期格式显示

  26. 3.3.3 VBScript变量 • 所谓变量,就是在程序运行过程中,其值可以被改变的量。 • 严格说来,变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值。为了方便引用,我们可以给这个存储单元定义一个名字,这就是变量的名称 。 • 变量与常量非常类似,只不过常量一经声明其值就不能改变了,而变量在声明后仍可随时对其值进行修改。 • 在VBScript中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant

  27. 1.变量的命名规则 • 在VBScript中,变量的命名规则如下: (1)变量名必须以字母开头; (2)可以使用字母、数字和下划线,但不能使用任何标点符号; (3)长度不能超过255个字符; (4)不能使用VBScript的关键字,所谓关键字,就是Const、Dim、Sub、End等在语法中使用的一些特殊字符串。

  28. 2、 变量的声明、赋值和引用 • 在VBScript中使用关键字Dim声明变量,语法格式为: Dim 变量名 例如:dim x dim x, y, z 声明(定义)变量可以使用Dim语句 如:Dim intA '声明一个变量intA • 变量的赋值也与许多高级语言相同,变量放在等号的左边,赋值语句放在等号的右边,赋值语句可以是一个常量(常数),也可以是一个表达式。 • 语法格式为:变量名=值 如:intA=10+20*3 • 变量的引用和常量类似,可以将变量直接赋值给另外一个变量,也可以将变量引用到表达式中。 • Dim intA , intB , intC '声明3个变量 • intA=5 '给变量intA赋值 • intB=5 '给变量intB赋值 • intC=intA+intB '引用变量intA和intB,将两者之和赋给变量intC eg3-8.asp 编写一个根据半径计算圆面积的程序

  29. 字符常量 29

  30. 3. 强制声明变量 • 如果希望强制要求所有的变量必须先声明才能使用,则可以在ASP文件中所有的脚本语句之前添加Option Explicit语句,用法如下: <% Option Explicit %> • 添加了Option Explicit语句后,如果使用变量前没有预先声明,调试程序时就会报错。

  31. 4.变量的作用范围和有效期 • 作用范围也称作用域,表示在什么空间范围内可以使用该变量。在VBScript中,变量的作用范围是由变量的声明位置决定的。 • 过程级变量:如果一个变量在过程或函数内声明,则称其为局部变量或过程级变量,其作用域仅局限于该过程或函数内部,用于临时存放数据。 • 脚本级变量:如果一个变量在过程或函数外声明,则称其为全局变量或页面级变量,其作用域为整个网页,用于存放整个程序公用的数据,可供当前网页中的各个脚本程序访问。 • 有效期也称存活期,表示变量从定义开始到最后被撤销的存在时间。 • 过程级变量的有效期就是该过程的运行时间,过程结束后,变量就随即消失了; • 脚本级变量的有效期就是从它被声明那一刻到整个代码的结束。

  32. 数 组 • 数组代表内存中具有特定属性的若干连续的存储单元,每个单元都可以用来存放数据,根据单元的索引(也称下标)就可以访问特定的存储单元。

  33. 1. 数组的命名、声明、赋值和引用 数组的命名、声明、赋值和引用与上一节讲的变量基本上是一样的,所不同的只是需要将元素的个数(即数组的长度)包含在数组名称之后的括号里。数组声明的语法格式为: Dim 数组名(下标) 例如:声明一个包含8个元素的一维数组: Dim A(7) 声明一个3行4列的二维数组: Dim A(2,3) Dim intA(2) ‘声明一个元素数为3的数组 intA(0)=1 '给第1个数组元素变量赋值 intA(1)=2 '给第2个数组元素变量赋值 intA(2)=3 '给第3个数组元素变量赋值 • VBScript数组索引从0开始计数 。

  34. 2.多维数组 • 多维数组的引用和赋值和一维数组是一样的,只不过括号中的第1个数字表示所在行,第2个数字表示所在列 。 • 举例:声明一个3行4列的二维数组 • Dim intA(2,3) ‘声明一个3行4列的二维数组 • 下面是该二维数组的结构示意图:

  35. 3. 变长数组 • 动态数组是指在程序运行期间长度可以改变的数组,它使用Dim或ReDim声明,与数组不同的是,动态数组变量后面的括号中可以没有下标。 例如:Dim A() Redim A() • Redim语句与Dim的不同之处在于其数组可以重设数组的维数和大小。 例如:Redim A(3) Redim preserve A(4) • 注意:使用Redim重新声明数组后,原有数组的元素值将全部清空,若要保留原有元素值,需要使用preserve关键字。 例如: <% Redim Preserve intA(5) %>

  36. 3.3.4 VBScript基本运算 • VBScript运算符和表达式总述 • VBScript继承了VB的所有类别的运算符,包括算术运算符、连接运算符、比较运算符和逻辑运算符 • 要注意运算顺序,先计算算术运算符,其次连接运算符,再次比较运算符,最后计算逻辑运算符。 • VBScript主要包含三种不同的表达式: • 数学表达式(如3+5*7) • 字符串表达式(如"ab" & "cd") • 条件表达式(如5>3)

  37. 3.3.4 VBScript基本运算 1.算术运算符 • 大部分运算符两边不需要留空格,但是少数容易混淆的运算符两边必须留空格,如Mod。

  38. 3.3.4 VBScript基本运算 2. 连接运算符 • VBScript连接运算符有“&”或“+”两种,用于将两个字符串进行连接。 • + 运算符也可以用于连接字符串,但只有两个操作数都是字符串时才执行连接运算; • 如果有一个操作数是数值、日期或者布尔值,就执行相加运算。此时,如果有一个操作数无法转换成可以相加的类型,就会出错。 • 如: “456”+” xyx”=“456xyx” • & 运算符表示强制连接,不管两边的操作数是字符串、数值、日期还是布尔值,它都会把它们自动转化为字符串然后连接到一起 • 如:strResult=“ab” & “cd“ ‘结果为 "abcd “

  39. 关于连接符 • &用来连接字符串 <% C=“中国人民” & “万岁” C=“中国人民” & b Response.write “a+b=“ & Cstr(c) C=“中国”& “人民” & b Response.write c & “<p>” %> • +也可以作为连接符,如 C=“中国人民” + “万岁” 数字字符区别,例: • “1”+1=2 • “1”&1=11 • “1”+“1”=11

  40. 3.比较运算符和条件表达式 • 常用的比较运算符包括 • =、<>、>、<、>=和<= • 这些运算符执行后的结果为True(真)或False(假) • 如:blnResult=5>3 '对两个数字进行比较,结果为True • blnResult=#2008-1-1#<#2008-8-8# '对两个日期进行比较,结果为True • 比较运算符在实际运算中是没有优先顺序的,按从左到右的顺序进行 。

  41. 4. 逻辑运算符 • 逻辑运算符是对两个布尔值(True或False)或两个比较表达式进行一系列的逻辑运算,然后再返回一个布尔值结果。 • 常用的逻辑运算符有And(逻辑与)、Or(逻辑或)和Not(逻辑非),运算规则如下: (1)And 表示并且,只有两个操作数都是True的时候,结果才为True,否则为False; (2)Or表示或者,只要两个操作数中有一个是True,结果就为True,否则为False; (3)Not 表示求反,它是单目运算符,只要一个操作数,当操作数是True的时候,结果为False,当操作数为False时,结果为True。 • 还有其他几个不太常用的逻辑运算符 :Xor异或、Eqv等价、Imp 隐含

  42. 逻辑运算符示例 源文件 显示结果 比较运算符结果是一个逻辑量(true, false) 例:执行完a=5>3 And "a"<"c"语句后,a的值为: true

  43. 5. 运算符优先级 • 当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号( )中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。 • 当表达式包含多种运算符时,顺序是: • 算术运算符连接运算符比较运算符逻辑运算符。 • 所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。算术运算符和逻辑运算符按下列表3-8优先级进行处理: 43

  44. 3.4 VBScript控制语句 • 在前面用脚本语言编写的程序代码都是按书写的顺序执行,但是我们知道在很多情况下,语句的执行顺序是动态变化的,通常与语句在执行过程中所得到的数据结果有关联 • 例如,在成绩统计业务总,我们可能要根据成绩的分数段进行划分,并按照不同的分数段执行不同的任务。在这些情况下就需要改变程序的执行顺序,这些就是程序控制语句的功能 • 通常程序设计语言中的控制语句有两大类,就是条件语句和循环语句. 44

  45. 3.4.1 条件语句 • If…Then…Else语句用于判断条件是True或False,然后根据判断结果指定要运行的语句。 • If语句的几种形式: (1) If 条件表达式 Then程序语句 ‘单行结构 eg3-9.asp (2) If 条件表达式 Then ‘多行结构 程序语句块 End If (3) If 条件表达式 Then ‘双分支 程序语句块1 Else 程序语句块2 End If (4) If 条件表达式1 Then ‘多分支 3-9.asp 程序语句块1 eg3-10.html/asp ElseIf 条件表达式2 Then 程序语句块2 Else 程序语句块N+1 End If

  46. IF语句示例 源文件 显示结果

  47. 2. Select Case语句 • Select Case语句是If…Then…Else…End If语句多条件时的另外一种形式,适当使用,可以使程序更简洁方便。 • Select Case语句语法如下 : Select Case 变量或表达式 Case 结果1 程序语句块1 Case 结果2 程序语句块2 …… Case 结果N 程序语句块N Case Else 程序语句块N+1 End Select 【eg3-11.htm/3-10.asp】利用select case语句编写一个能够判断当前日期为星期几

  48. Select语句示例 源文件 显示结果

  49. 3.4.2 循环语句 • 经常地,当编写代码时,我们希望将一段代码执行若干次。我们可以在代码中使用循环语句来完成这项工作。循环语句分三类 • 在条件变为 false 之前重复执行语句。 • 在条件变为 true 之前重复执行语句。 • 按照指定的次数重复执行语句。 • 在 VBScript 中,我们可以使用四种循环语句: • For...Next语句:运行一段语句指定的次数; • For Each...Next语句:针对集合中的每个项目或者数组中的每个元素来运行某段语句; • Do...Loop语句:运行循环,当条件为 true 或者直到条件为 true 时; • While...Wend语句:当条件为true时循环。尽量不要使用这个语句,请使用do...loop语句代替它。 49

  50. 1. For…Next循环 • For…Next循环是一种强制型的循环。在循环的过程中,可以指定循环的次数,当到达循环运行次数之后,即退出循环。 • 语法如下: for循环变量counter=初值 to终值 [step 步长] 语句序列1 [exit for ] 语句序列2 next

More Related