WinCC VBScript教程文档格式.docx
- 文档编号:6237252
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:17
- 大小:24.67KB
WinCC VBScript教程文档格式.docx
《WinCC VBScript教程文档格式.docx》由会员分享,可在线阅读,更多相关《WinCC VBScript教程文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
这就是说,如果使用看起来象是数字的数据,则VBScript会假定其为数字并以适用于数字的方式处理。
与此类似,如果使用的数据只可能是字符串,则VBScript将按字符串处理。
也可以将数字包含在引号("
"
)中使其成为字符串。
Variant子类型
除简单数字或字符串以外,Variant
可以进一步区分数值信息的特定含义。
例如使用数值信息表示日期或时间。
此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。
从Boolean值到浮点数,数值信息是多种多样的。
包含的数值信息类型称为子类型。
大多数情况下,可将所需的数据放进
中,而
也会按照最适用于其包含的数据的方式进行操作。
下表显示
包含的数据子类型:
子类型
描述
Empty
未初始化的
对于数值变量,值为0;
对于字符串变量,值为零长度字符串("
"
)。
Null
不包含任何有效数据的
Boolean
包含
True
或
False。
Byte
包含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.402823E38。
Double
包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308。
Date(Time)
包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。
String
包含变长字符串,最大长度可为20亿个字符。
Object
包含对象。
Error
包含错误号。
您可以使用转换函数来转换数据的子类型。
另外,可使用
VarType函数返回数据的
子类型。
VBScript变量
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。
例如,可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。
使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。
在VBScript中只有一个基本数据类型,即
Variant,因此所有变量的数据类型都是Variant。
声明变量
声明变量的一种方式是使用
Dim
语句、Public
语句和
Private
语句在脚本中显式声明变量。
例如:
DimDegreesFahrenheit
声明多个变量时,使用逗号分隔变量。
DimTop,Bottom,Left,Right
另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。
这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。
因此,最好使用
OptionExplicit
语句显式声明所有变量,并将其作为脚本的第一条语句。
命名规则
变量命名必须遵循VBScript的标准命名规则。
变量命名必须遵循:
第一个字符必须是字母。
不能包含嵌入的句点。
长度不能超过255个字符。
在被声明的作用域内必须唯一。
变量的作用域与存活期
变量的作用域由声明它的位置决定。
如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。
如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为
Script级变量,具有脚本级作用域。
变量存在的时间称为存活期。
Script级变量的存活期从被声明的一刻起,直到脚本运行结束。
对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。
在执行过程时,局部变量是理想的临时存储空间。
可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。
给变量赋值
创建如下形式的表达式给变量赋值:
变量在表达式左边,要赋的值在表达式右边。
B=200
标量变量和数组变量
多数情况下,只需为声明的变量赋一个值。
只包含一个值的变量被称为标量变量。
有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。
数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号()。
下例声明了一个包含11个元素的一维数组:
DimA(10)
虽然括号中显示的数字是10,但由于在VBScript中所有数组都是基于0的,所以这个数组实际上包含11个元素。
在基于0的数组中,数组元素的数目总是括号中显示的数目加1。
这种数组被称为固定大小的数组。
在数组中使用索引为数组的每个元素赋值。
从0到10,将数据赋给数组的元素,如下所示:
A(0)=256
A
(1)=324
A
(2)=100
...
A(10)=55
与此类似,使用索引可以检索到所需的数组元素的数据。
...
SomeVariable=A(8)
...
数组并不仅限于一维。
数组的维数最大可以为60(尽管大多数人不能理解超过3或4的维数)。
声明多维数组时用逗号分隔括号中每个表示数组大小的数字。
在下例中,MyTable变量是一个有6行和11列的二维数组:
DimMyTable(5,10)
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
也可以声明动态数组,即在运行脚本时大小发生变化的数组。
对数组的最初声明使用
语句或
ReDim
语句。
但是对于动态数组,括号中不包含任何数字。
DimMyArray()
ReDimAnotherArray()
要使用动态数组,必须随后使用
确定维数和每一维的大小。
在下例中,ReDim
将动态数组的初始大小设置为25,而后面的
语句将数组的大小重新调整为30,同时使用
Preserve关键字在重新调整大小时保留数组的内容。
ReDimMyArray(25)
ReDimPreserveMyArray(30)
重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。
VBScript常数
常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。
VBScript定义了许多内部常数。
详细信息,请参阅
VBScript语言参考。
创建常数
您可以使用
Const
语句在VBScript中创建用户自定义常数。
使用
语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。
ConstMyString="
这是一个字符串。
ConstMyAge=49
请注意字符串文字包含在两个引号("
)之间。
这是区分字符串型常数和数值型常数的最明显的方法。
日期文字和时间文字包含在两个井号(#)之间。
ConstCutoffDate=#6-1-97#
最好采用一个命名方案以区分常数和变量。
这样可以避免在运行脚本时对常数重新赋值。
例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。
将常数和变量区分开可以在开发复杂的脚本时避免混乱。
VBScript运算符
VBScript有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。
运算符优先级
当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。
可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。
运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。
但是,在括号中仍遵循标准运算符优先级。
当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。
所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。
算术运算符和逻辑运算符的优先级如下所示:
算术运算符
比较运算符
逻辑运算符
符号
求幂
^
等于
=
逻辑非
Not
负号
-
不等于
<
>
逻辑与
And
乘
*
小于
逻辑或
Or
除
/
大于
逻辑异或
Xor
整除
\
小于等于
逻辑等价
Eqv
求余
Mod
大于等于
逻辑隐含
Imp
加
+
对象引用比较
Is
减
字符串连接
&
当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。
同样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。
字符串连接(&
)运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。
Is
运算符是对象引用比较运算符。
它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。
条件语句
控制程序执行
使用条件语句和循环语句可以控制脚本的流程。
使用条件语句可以编写进行判断和重复操作的VBScript代码。
在VBScript中可使用以下条件语句:
If...Then...Else
语句
SelectCase
使用If...Then...Else进行判断
语句用于计算条件是否为
False,并且根据计算结果指定要运行的语句。
通常,条件是使用比较运算符对值或变量进行比较的表达式。
有关比较运算符的详细信息,请参阅比较运算符。
语句可以按照需要进行嵌套。
条件为True时运行语句
要在条件为
时运行单行语句,可使用
语句的单行语法。
下例示范了单行语法。
请注意此例省略了关键字
Else。
SubFixDate()
DimmyDate
myDate=#2/13/95#
IfmyDate<
NowThenmyDate=Now
EndSub
要运行多行代码,必须使用多行(或块)语法。
多行(或块)语法包含
EndIf
语句,如下所示:
SubAlertUser(value)
Ifvalue=0Then
AlertLabel.ForeColor=vbRed
AlertLabel.Font.Bold=True
AlertLabel.Font.Italic=True
EndIf
条件为True和False时分别运行某些语句
可以使用
语句定义两个可执行语句块:
条件为
时运行某一语句块,条件为
False
时运行另一语句块。
Else
AlertLabel.Forecolor=vbBlack
AlertLabel.Font.Bold=False
AlertLabel.Font.Italic=False
对多个条件进行判断
语句的一种变形允许您从多个条件中选择,即添加
ElseIf
子句以扩充
语句的功能,使您可以控制基于多种可能的程序流程。
SubReportValue(value)
MsgBoxvalue
ElseIfvalue=1Then
ElseIfvalue=2then
Msgboxvalue
Msgbox"
数值超出范围!
EndIf
可以添加任意多个
子句以提供多种选择。
使用多个
子句经常会变得很累赘。
在多个条件中进行选择的更好方法是使用
使用SelectCase进行判断
结构提供了
If...Then...ElseIf
结构的一个变通形式,可以从多个语句块中选择执行其中的一个。
语句提供的功能与
语句类似,但是可以使代码更加简练易读。
结构在其开始处使用一个只计算一次的简单测试表达式。
表达式的结果将与结构中每个
Case
的值比较。
如果匹配,则执行与该
关联的语句块,示例代码如下:
SelectCaseDocument.Form1.CardType.Options(SelectedIndex).Text
Case"
MasterCard"
DisplayMCLogo
ValidateMCAccount
Visa"
DisplayVisaLogo
ValidateVisaAccount
AmericanExpress"
DisplayAMEXCOLogo
ValidateAMEXCOAccount
CaseElse
DisplayUnknownImage
PromptAgain
EndSelect
请注意
结构只计算开始处的一个表达式(只计算一次),而
结构计算每个
语句的表达式,这些表达式可以各不相同。
仅当每个
语句计算的表达式都相同时,才可以使用
结构代替
结构。
使用循环语句
循环用于重复执行一组语句。
循环可分为三类:
一类在条件变为
之前重复执行语句,一类在条件变为
之前重复执行语句,另一类按照指定的次数重复执行语句。
在VBScript中可使用下列循环语句:
Do...Loop:
当(或直到)条件为
时循环。
While...Wend:
当条件为
For...Next:
指定循环次数,使用计数器重复运行语句。
ForEach...Next:
对于集合中的每项或数组中的每个元素,重复执行一组语句。
使用Do循环
Do...Loop
语句多次(次数不定)运行语句块。
时或条件变为
之前,重复执行语句块。
当条件为True时重复执行语句
While
关键字用于检查
语句中的条件。
有两种方式检查条件:
在进入循环之前检查条件(如下面的ChkFirstWhile示例);
或者在循环至少运行完一次之后检查条件(如下面的ChkLastWhile示例)。
在ChkFirstWhile过程中,如果myNum的初始值被设置为9而不是20,则永远不会执行循环体中的语句。
在ChkLastWhile过程中,循环体中的语句只会执行一次,因为条件在检查时已经为
SubChkFirstWhile()
Dimcounter,myNum
counter=0
myNum=20
DoWhilemyNum>
10
myNum=myNum-1
counter=counter+1
Loop
MsgBox"
循环重复了"
&
counter&
次。
EndSubSubChkLastWhile()
myNum=9
Do
LoopWhilemyNum>
重复执行语句直到条件变为True
Until
在进入循环之前检查条件(如下面的ChkFirstUntil示例);
或者在循环至少运行完一次之后检查条件(如下面的ChkLastUntil示例)。
只要条件为
False,就会进行循环。
SubChkFirstUntil()
DoUntilmyNum=10
EndSubSubChkLastUntil()
myNum=1
myNum=myNum+1
LoopUntilmyNum=10
退出循环
ExitDo
语句用于退出
循环。
因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在
语句的
语句块中使用
如果条件为
False,循环将照常运行。
在下面的示例中,myNum的初始值将导致死循环。
语句检查此条件,防止出现死循环。
SubExitExample()
IfmyNum<
10ThenExitDo
使用While...Wend
While...Wend
语句是为那些熟悉其用法的用户提供的。
但是由于
缺少灵活性,所以建议最好使用
使用For...Next
For...Next
语句用于将语句块运行指定的次数。
在循环中使用计数器变量,该变量的值随每一次循环增加或减少。
例如,下面的示例将过程MyProc重复执行50次。
For
语句指定计数器变量x及其起始值与终止值。
Next
语句使计数器变量每次加1。
SubDoMyProc50Times()
Dimx
Forx=1To50
MyProc
Next
关键字
Step
用于指定计数器变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WinCC VBScript教程 VBScript 教程