在VBscript中,过程指的是一组能执行特定功能的代码块,类似于自定义函数的概念,当我们定义了自己的过程后,就可以在脚本中反复调用它们了,对于自定义的过程还可以放在外部的文件夹中,使用#include指令调用它们,也可以将其打包在ActiveX组件中。
一、定义过程
1、定义sub过程
Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数。
定义格式:
Sub Sub_nam(parameter1,parameter2,...) statement End Sub |
参数:
Sub_nam 为过程名 parameter 为要给过程传递的参数 statement 为过程体即在调用过程时要执行的一些语句 |
例如
<% sub mysub(a,b) '定义带有两个参数的sub子程序 sum=a*b end sub %> |
2、定义function过程
Function 过程是包含在 Function 和 End Function 语句之间的一组VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。例如:
定义格式:
function func_nam(parameter1,parameter2,...) statement func_nam=variables End Function |
参数
func_nam 为过程名 parameter 为要给过程传递的参数 statement 为过程体即在调用过程时要执行的一些语句 variables 为要给函数名赋的值 |
例如
<% function my_func(a,b) dim sum sum=a*b my_func=sum '给函数名赋值 end function %> |
二、调用过程
1、调用同一文件的过程:
call my_sub(a,b) '使用call语句调用sub子程序。
my_sub a,b '不使用call语句调用sub子程序,这种方法最常用。
sum=my_func(a,b) '直接引用函数名进行调用。
2、调用外部文件的过程
可以使用html语言的注释标记,利用#include来进行调用;调用时注意路径的设置
如调用同一文件夹下的过程文件p1.asp:
<!--#include file="p1.asp"--> |
示例 sl5-1.asp
<% dim k,h k=5 h=10 my_sub k,h '调用sub子程序并向其传递参数 sub my_sub(a,b) '定义sub子程序 dim sum '声明局部变量 sum=a*b '程序完成的功能 response.write(sum) end sub %> |
示例说明:
在定义sub子程序时赋予它的两个参数a,b叫过程的形式参数,在调用sub子程序时向它传递了两个参数k,h叫过程的实际参数,调用过程往往在定义过程之前,但也可以先定义过程然后再调用。
示例 sl5-2.asp
<% dim a,b,c a=2 b=3 c=my_func(a,b) '调用函数并将函数返回值保存到变量c中 response.write(c) '下面定义函数 function my_func(m,n) dim sum sum=m+n my_func=sum '给函数名赋值 end function %> |
示例
(1)定义一个function过程func.asp,在另一个文件中调用这个过程,两个文件放在同一个文件夹中,如果不在同一个文件夹,要正确书写路径。
文件名:func.asp
<% function my_func(m,n) dim sum sum=m*n my_func=sum end function %> |
(2)在这个asp文件中调用上面定义的func.asp过程
文件名:sl5-3.asp
<!--#include file="func.asp"--> <% dim a,b,c a=5 b=6 c=my_func(a,b) response.Write c %> |
示例 sl5-4.asp
<% c=my_func() '调用函数 function my_func() dim a,b,c a="学习asp" b="学习asp" c="学习asd" response.write a=b '返回True response.write "<br>" response.write a=c '返回False response.write "<br>" response.write StrComp(a,b) '返回0,说明a和b相等 response.write "<br>" response.write StrComp(a,c) '返回1,说明a大于c end function %> |