常量是具有一定含义的名称,用于代替数字或字符串,其值从不改变。此外,VBScript还定义了许多固有常量,这无疑大大方便了程序员的开发工作。
在VBScript中,我们可以声明常量,用来代替数字、日期或者字符串等数值,常量的数值在脚本运行的过程中不能发生变化。常量声明的语法如下所示:
Const constname = expression
其中,constname是常量的名称,expression是常量的值。
对于脚本开发人员来说,常量是很有用的,例如,如果在我们的脚本中需要使用到π,我们往往会将其定义为一个常量,赋值为3.14:
Const
PI = 3.14
如果需要更高的精度,那么,我们可以将其设置为3.1415927:
Const
PI = 3.1415927
在使用常量的情况下,我们只需要修改常量声明这一条语句就可以了,若我们不使用常量,那么我们则不得不将页面中用到π的地方全部进行修改。在使用常量的情况下,将会提高脚本的可读性与易维护性。
在常量声明的前面,我们也可以加上Public和Private前缀来设置其作用域,设置方式和变量是一样的。缺省情况下,在过程中声明的常量具有过程级作用域,在过程外声明的常量具有脚本级作用域。
在常量命名的过程中,也需要遵循变量的命名规则,并且不能和变量名称、VBScript内部函数名称和用户自定义函数名称相同。而且,在声明的时候,变量的值必须是一个简单常量,而不能是带有操作符的表达式。
我们建议在命名常量的时候,也使用一个命名方法,将常量和变量区分开来,这样可以避免将常量和变量混淆,不至于在脚本中对常量重新赋值,我们可以将常量的所有字母大写,例如,PI,或者使用“con”作为常量的前缀,例如,conPi。将常量和变量区分开是一个良好的编程风格,避免在脚本开发中出现混乱。
使用Const语句创建名称具有一定含义的字符串型常量时,通常需要将字符串文字包含在两个引号("
")之间。例如:
Const
MyString = "这是一个字符串。"
这也区分字符串型常量和数值型常量的最明显的方法。另外,日期文字和时间文字应当包含在两个井号(#)之间。例如:
Const
CutoffDate = #6-1-97#
刚刚提到,VBScript还定义了固有常量,设计人员可以在程序中定义并直接引用这些常量。VBScript定义的常量包括颜色常量、比较常量、日期和时间常量、日期格式常量、DriveType常量、FileAttributes常量、文件输入/输出常量、MsgBox常量、SpecialFolder常量、字符串常量、Tristate常量、VarType常量等。
例如,VBScript的颜色常量包括8个常量,各常量的名称、值和描述见表2.1。为便函于编程人员参考,我们在表2.1中一并给出了VBScript其他固有常量的名称、值和描述。
表2.1 VBScript的固有常量
颜色常数 |
||
常数 |
值 |
描述 |
vbBlack |
&h00 |
黑色 |
vbRed |
&hFF |
红色 |
vbGreen |
&hFF00 |
绿色 |
vbYellow |
&hFFFF |
黄色 |
vbBlue |
&hFF0000 |
蓝色 |
vbMagenta |
&hFF00FF |
紫色 |
vbCyan |
&hFFFF00 |
青色 |
vbWhite |
&hFFFFFF |
白色 |
比较常数 |
||
常数 |
值 |
描述 |
vbBinaryCompare |
0 |
执行二进制比较。 |
vbTextCompare |
1 |
执行文本比较。 |
vbDatabaseCompare |
2 |
基于数据库所包含的信息,在数据库中进行比较。 |
日期和时间常数 |
||
常数 |
值 |
描述 |
vbSunday |
1 |
星期日 |
vbMonday |
2 |
星期一 |
vbTuesday |
3 |
星期二 |
vbWednesday |
4 |
星期三 |
vbThursday |
5 |
星期四 |
vbFriday |
6 |
星期五 |
vbSaturday |
7 |
星期六 |
vbFirstJan1 |
1 |
使用包含1月1日的星期(默认)。 |
vbFirstFourDays |
2 |
使用第一个至少包含新的年中四天的星期。 |
vbFirstFullWeek |
3 |
使用某年的第一个整周。 |
vbUseSystem |
0 |
使用计算机区域设置中的日期格式。 |
vbUseSystemDayOfWeek |
0 |
由系统设置定义每周的第一天是星期几。 |
日期格式常数 |
||
常数 |
值 |
描述 |
vbGeneralDate |
0 |
显示日期和/或时间。对于实数,显示日期和时间。如果没有小数部分,仅显示日期。如果没有整数部分,则仅显示时间。由系统设置决定日期和时间的显示。 |
vbLongDate |
1 |
按计算机中区域设置指定的长日期格式显示日期。 |
vbShortDate |
2 |
按计算机中区域设置指定的短日期格式显示日期。 |
vbLongTime |
3 |
按计算机中区域设置指定的长时间格式显示时间。 |
vbShortTime |
4 |
按计算机中区域设置指定的短时间格式显示时间。 |
DriveType常数 |
||
常数 |
值 |
描述 |
Unknown |
0 |
无法确定驱动器类型。 |
Removable |
1 |
可移动媒体驱动器,包括软盘驱动器和其他多种存储设备。 |
Fixed |
2 |
固定(不可移动)媒体驱动器,包括所有硬盘驱动器(包括可移动的硬盘驱动器)。 |
Remote |
3 |
网络驱动器,包括网络上任何位置的共享驱动器。 |
CDROM |
4 |
CD-ROM驱动器,不区分只读和可读写的CD-ROM驱动器。 |
RAMDisk |
5 |
RAM磁盘,在本地计算机中占用一块“随机存取内存”(RAM)虚拟为磁盘驱动器。 |
FileAttributes常数 |
||
常数 |
值 |
描述 |
Normal |
0 |
普通文件。未设置属性。 |
ReadOnly |
1 |
只读文件。 |
Hidden |
2 |
隐藏文件。 |
System |
4 |
系统文件。 |
Volume |
8 |
磁盘驱动器卷标。 |
Directory |
16 |
文件夹或目录。 |
Archive |
32 |
上次备份后已更改的文件。 |
Alias |
64 |
链接或快捷方式。 |
Compressed |
128 |
压缩文件。 |
文件输入/输出常数 |
||
常数 |
值 |
描述 |
ForReading |
1 |
以只读方式打开文件。不能向该文件写入内容。 |
ForWriting |
2 |
以可读写方式打开文件。如果已存在同名的文件,则覆盖旧的文件。 |
ForAppending |
8 |
打开文件并在文件末尾写入内容。 |
MsgBox常数 |
||
常数 |
值 |
描述 |
vbOKOnly |
0 |
只显示确定按钮。 |
vbOKCancel |
1 |
显示确定和取消按钮。 |
vbAbortRetryIgnore |
2 |
显示终止、重试和忽略按钮。 |
vbYesNoCancel |
3 |
显示是、否和取消按钮。 |
vbYesNo |
4 |
显示是和否按钮。 |
vbRetryCancel |
5 |
显示重试和取消按钮。 |
vbCritical |
16 |
显示临界消息图标。 |
vbQuestion |
32 |
显示警告询问图标。 |
vbExclamation |
48 |
显示警告消息图标。 |
vbInformation |
64 |
显示提示消息图标。 |
vbDefaultButton1 |
0 |
第一个按钮是默认按钮。 |
vbDefaultButton2 |
256 |
第二个按钮是默认按钮。 |
vbDefaultButton3 |
512 |
第三个按钮是默认按钮。 |
vbDefaultButton4 |
768 |
第四个按钮是默认按钮。 |
vbApplicationModal |
0 |
应用程序模式。用户必须响应消息框,才能继续在当前应用程序中工作。 |
vbSystemModal |
4096 |
系统模式。用户响应消息框前,挂起所有应用程序。 |
下列常数与MsgBox函数一起使用,标识用户选定的按钮 |
||
常数 |
值 |
描述 |
vbOK |
1 |
确定按钮被单击。 |
vbCancel |
2 |
取消按钮被单击。 |
vbAbort |
3 |
终止按钮被单击。 |
vbRetry |
4 |
重试按钮被单击。 |
vbIgnore |
5 |
忽略按钮被单击。 |
vbYes |
6 |
是按钮被单击。 |
vbNo |
7 |
否按钮被单击。 |
SpecialFolder常数 |
||
常数 |
值 |
描述 |
WindowsFolder |
0 |
Windows文件夹,包含由Windows系统安装的文件。 |
SystemFolder |
1 |
System文件夹,包含库、字体和设备驱动程序文件。 |
TemporaryFolder |
2 |
Temp文件夹,用于保存临时文件。可在TMP环境变量中找到该文件夹的路径。 |
字符串常数 |
||
常数 |
值 |
描述 |
vbCr |
Chr(13) |
回车符 |
vbCrLf |
Chr(13) & Chr(10) |
回车符与换行符 |
vbFormFeed |
Chr(12) |
换页符;在MicrosoftWindows中不适用 |
vbLf |
Chr(10) |
换行符 |
vbNewLine |
Chr(13) & Chr(10) 或Chr(10) |
平台指定的新行字符;适用于任何平台 |
vbNullChar |
Chr(0) |
值为0的字符 |
vbNullString |
值为0的字符串 |
与零长度字符串("")不同;用于调用外部过程 |
vbTab |
Chr(9) |
水平附签 |
vbVerticalTab |
Chr(11) |
垂直附签;在MicrosoftWindows中不适用 |
Tristate常数 |
||
常数 |
值 |
描述 |
TristateTrue |
-1 |
True |
TristateFalse |
0 |
False |
TristateUseDefault |
-2 |
使用默认设置 |
VarType常数 |
|
|
常数 |
值 |
描述 |
vbEmpty |
0 |
未初始化(默认) |
vbNull |
1 |
不包含任何有效数据 |
vbInteger |
2 |
整型子类型 |
vbLong |
3 |
长整型子类型 |
vbSingle |
4 |
单精度子类型 |
vbDouble |
5 |
双精度子类型 |
vbCurrency |
6 |
货币子类型 |
vbDate |
7 |
日期子类型 |
vbString |
8 |
字符串子类型 |
vbObject |
9 |
对象 |
vbError |
10 |
错误子类型 |
vbBoolean |
11 |
Boolean子类型 |
vbVariant |
12 |
Variant(仅用于变量数组) |
vbDataObject |
13 |
数据访问对象 |
vbDecimal |
14 |
十进制子类型 |
vbByte |
17 |
字节子类型 |
vbArray |
8192 |
数组 |
其他常数 |
||
常数 |
值 |
描述 |
vbObjectError |
&h80040000 |
自定义错误号应大于该值,例如,Err.Raise
Number = vbObjectError + 1000 |