您好,SA。如果您是脚本编写方面的新手(或者您从未使用过 Split 函数),那我们就先从一个简要教程开始。正如 SA 所说,通过 Split 函数,可获得一个项或多个项(各项间以逗号等通用分隔符分隔)的文本字符串,然后创建一个包含各项的数组。例如,假设有以下文本行:
Dopey,Sneezy,Doc,Grumpy,Sleepy,Happy,Bashful
通过运行 Split 函数并告诉该函数逗号是分隔符(即分隔各项的字符),我们可以很容易地将此字符串分成以下组成部分:
Dopey
Sneezy
Doc
Grumpy
Sleepy
Happy
Bashful
总之,这是一个非常实用而小巧的函数,尤其是用于文件路径、Active Directory AdsPaths 及其他组成部分与整体同样重要的情况。(例如,Split 函数可将 C:/Scripts/MyScript.vbs 这样的文件路径拆分成驱动器、文件夹和文件名。)
这的确不错。但是 SA 想知道一个文本字符串可分为多少项;例如,我们不想知道“七个小矮人”的名字,只想知道该字符串中列出了七个小矮人。
|
注意。尽管有自吹自擂之嫌,但我们仍要指出,脚本专家(常被误认为是“七个小矮人”)不需查证就知道所有这七个名字。还有一点要对那些对琐事津津乐道者说明的是:Dopey(常常与脚本专家混淆的小矮人)最初叫 Deafy。很奇怪,但却千真万确! |
那么,如何确定字符串中找到的项数呢?我们只需使用下面这一小段简单的脚本:
strNames = "Dopey,Sneezy,Doc,Grumpy,Sleepy,Happy,Bashful"
arrNames = Split(strNames, ",")
Wscript.Echo Ubound(arrNames) + 1
在第 1 行,我们将七个小矮人的名字(名字间用逗号分隔)分配给一个名为 strNames 的变量。在第 2 行,我们调用 Split 函数,并指示分隔符是逗号。因此,您会看到“,”是传递给 Split 的第二个参数;第一个参数当然要对其执行 Split 的字符串。此操作会返回一个名为 arrNames 的数组,数组中的每项代表一个小矮人的名字。(顺便说一下,名称 arrNames 完全是随意指定的;您可以使用想要的任何变量名。)
接下来是第 3 行:
Wscript.Echo Ubound(arrNames) + 1
在此我们要执行的操作是回显数组的 Ubound(上限)值,并加上 1。其用意如何呢?是这样的,在数组中,每项会自动分配有一个索引号:分配给第一项的索引号是 0,分配给第二项的是 1,以此类推。在内存中,数组类似如下:
|
索引号 |
项 |
|
0 |
Dopey |
|
1 |
Sneezy |
|
2 |
Doc |
|
3 |
Grumpy |
|
4 |
Sleepy |
|
5 |
Happy |
|
6 |
Bashful |
Ubound 函数将始终返回数组中最后一项的索引号;在此例中,Ubound 返回 6。Ubound 值始终比数组中的项数少一;请记住,此数组中实际有七项。之所以会这样,是因为分配给数组中第一项的索引号是 0;如果第一项的索引号是 1,则 Ubound 值也会代表数组中的总项数。但是没关系:我们只需取 Ubound 值,然后将其加 1,即可得出总项数。大功告成!
哦,还有一件事:是的,我们将极力阻止 Peter 在他的下次网络广播中演唱 Someday My Prince Will Come 的脚本编写相关版。我们说到做到。