IP:3.147.78.249 Time:
加载中...
本站首页在线新闻技术文献软件工具国际版

-------- Welcome To Senqice Network  !Thank You For Your Support !--------
文献分类
·网站建设
·系统使用

文献TOP10
·DLL木马进程内幕大揭密
·ASP判断浏览器是移动端和PC端
·批处理教程
·常用DOS命令
·VBScript教程(三)
·Win10 隐藏硬盘上面额外的6个文件夹+3D 对象
·VBScript教程(二)
·VBS编程教程(六)终
·计算机网络基本概念(2)
·QQ被盗,好友不丢。

站内搜索






  本站的大部分软件工具和相关文献都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我,我将马上进行整理,谢谢。

VBScript教程(三)
圣骑士--网络安全技术中心 http://www.senqice.net/
所属分类:网站建设 作者:Hacker Admin 更新日期:2007-8-5
控制程序执行 
使用条件语句和循环语句可以控制 Script 的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句:  
• If...Then...Else 语句  
• Select Case 语句  
使用 If...Then...Else 进行判断 
If...Then...Else 语句用于计算条件是否为 True 或 False,并且根据计算结果指定要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式。有关比较运算符的详细信息,请参阅比较运算符。If...Then...Else 语句可以按照需要进行嵌套。  
条件为 True 时运行语句 
要在条件为 True 时运行单行语句,可使用 If...Then...Else 语句的单行语法。下例示范了单行语法。请注意此例省略了关键字 Else。  
Sub FixDate() 
Dim myDate 
myDate = #2/13/95# 
If myDate < Now Then myDate = Now 
End Sub 
要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If 语句,如下所示:  
Sub AlertUser(value) 
If value = 0 Then 
AlertLabel.ForeColor = vbRed 
AlertLabel.Font.Bold = True 
AlertLabel.Font.Italic = True 
End If 
End Sub 
条件为 True 和 False 时分别运行某些语句 
可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True 时运行某一语句块,条件为 False 时运行另一语句块。  
Sub AlertUser(value) 
If value = 0 Then 
AlertLabel.ForeColor = vbRed 
AlertLabel.Font.Bold = True 
AlertLabel.Font.Italic = True 
Else 
AlertLabel.Forecolor = vbBlack 
AlertLabel.Font.Bold = False 
AlertLabel.Font.Italic = False 
End If 
End Sub 
对多个条件进行判断 
If...Then...Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf 子句以扩充 If...Then...Else 语句的功能,使您可以控制基于多种可能的程序流程。例如:  
Sub ReportValue(value) 
If value = 0 Then 
MsgBox value 
ElseIf value = 1 Then 
MsgBox value 
ElseIf value = 2 then 
Msgbox value 
Else 
Msgbox "数值超出范围!" 
End If 
可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。  
使用 Select Case 进行判断 
Select Case 结构提供了 If...Then...ElseIf 结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case 语句提供的功能与 If...Then...Else 语句类似,但是可以使代码更加简练易读。  
Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块:  
Select Case Document.Form1.CardType.Options(SelectedIndex).Text 
Case "MasterCard" 
DisplayMCLogo 
ValidateMCAccount 
Case "Visa" 
DisplayVisaLogo 
ValidateVisaAccount 
Case "American Express" 
DisplayAMEXCOLogo 
ValidateAMEXCOAccount 
Case Else 
DisplayUnknownImage 
PromptAgain 
End Select 
请注意 Select Case 结构只计算开始处的一个表达式(只计算一次),而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。  
使用循环重复执行代码 
循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。  
在 VBScript 中可使用下列循环语句:  
•Do...Loop: 当(或直到)条件为 True 时循环。  
•While...Wend: 当条件为 True 时循环。  
•For...Next: 指定循环次数,使用计数器重复运行语句。  
•For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。  
使用 Do 循环 
可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。  
当条件为 True 时重复执行语句 
While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。  
Sub ChkFirstWhile() 
Dim counter, myNum 
counter = 0 
myNum = 20 
Do While myNum > 10 
myNum = myNum - 1 
counter = counter + 1 
Loop 
MsgBox "循环重复了 " & counter & " 次。" 
End Sub 
Sub ChkLastWhile() 
Dim counter, myNum 
counter = 0 
myNum = 9 
Do 
myNum = myNum - 1 
counter = counter + 1 
Loop While myNum > 10 
MsgBox "循环重复了 " & counter & " 次。" 
End Sub 
重复执行语句直到条件变为 True 
Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。  
Sub ChkFirstUntil() 
Dim counter, myNum 
counter = 0 
myNum = 20 
Do Until myNum = 10 
myNum = myNum - 1 
counter = counter + 1 
Loop 
MsgBox "循环重复了 " & counter & " 次。" 
End Sub 
Sub ChkLastUntil() 
Dim counter, myNum 
counter = 0 
myNum = 1 
Do 
myNum = myNum + 1 
counter = counter + 1 
Loop Until myNum = 10 
MsgBox "循环重复了 " & counter & " 次。" 
End Sub 
退出循环 
Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。  
在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。  
Sub ExitExample() 
Dim counter, myNum 
counter = 0 
myNum = 9 
Do Until myNum = 10 
myNum = myNum - 1 
counter = counter + 1 
If myNum < 10 Then Exit Do 
Loop 
MsgBox "循环重复了 " & counter & " 次。" 
End Sub 
使用 While...Wend 
While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。  
使用 For...Next 
For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。  
例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。  
Sub DoMyProc50Times() 
Dim x 
For x = 1 To 50 
MyProc 
Next 
End Sub 
关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。  
Sub TwosTotal() 
Dim j, total 
For j = 2 To 10 Step 2 
total = total + j 
Next 
MsgBox "总和为 " & total & "。" 
End Sub 
要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。  
Sub NewTotal() 
Dim myNum, total 
For myNum = 16 To 2 Step -2 
total = total + myNum 
Next 
MsgBox "总和为 " & total & "。" 
End Sub 
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。  
使用 For Each...Next 
For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。  
在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中:窗体与元素<form name="frmForm" <input="" type="Text">
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
过程分类 
在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。  
Sub 过程 
Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。  
下面的 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript 创建的 Function 过程完成。此过程在以下讨论之后演示。  
Sub ConvertTemp() 
temp = InputBox("请输入华氏温度。", 1) 
MsgBox "温度为 " &amp; Celsius(temp) &amp; " 摄氏度。" 
End Sub 
Function 过程 
Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。  
在下面的示例中,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。  
Sub ConvertTemp() 
temp = InputBox("请输入华氏温度。", 1) 
MsgBox "温度为 " &amp; Celsius(temp) &amp; " 摄氏度。" 
End Sub 
Function Celsius(fDegrees) 
Celsius = (fDegrees - 32) * 5 / 9 
End Function 
过程的数据进出 
给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees 是传递给 Celsius 函数的值的占位符:  
Function Celsius(fDegrees) 
Celsius = (fDegrees - 32) * 5 / 9 
End Function 
要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值。  
在代码中使用 Sub 和 Function 过程 
调用 Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。例如:  
Temp = Celsius(fDegrees) 
或  
MsgBox "温度为 " &amp; Celsius(fDegrees) &amp; " 摄氏度。" 
调用 Sub 过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用 Call 语句,但如果使用了此语句,则必须将所有参数包含在括号之中。  
下面的示例显示了调用 MyProc 过程的两种方式。一种使用 Call 语句;另一种则不使用。两种方式效果相同。  
Call MyProc(firstarg, secondarg) 
MyProc firstarg, secondarg 
请注意当不使用 Call 语句进行调用时,括号被省略。
</p>
查看人数:2917

设为首页收藏本站广告合作联系我们友情链接
本站页面刷新量: 4712180 人次 ┋ 最高峰: 2009-3-10 22:05:47 7897人在线 现有 55人在线 [网站于 2006-4-1 0:0:0开放统计]
〓圣骑士--网络安全技术中心〓 [Ver 6.1.0]
Copyright © 2004-2024 www.senqice.net All Rights Reserved 
Powered By :Senzx Net
备案序号:冀ICP备06013166号