VBS数组函数学习实例分析

2019-01-15 20:02:57王振洲

Split(expression[, delimiter[, count[, start]]])
参数:expression 必选项。字符串表达式,包含子字符串和分隔符。如果expression为零长度字符串,Split返回空数组,即不包含元素和数据的数组。
     delimiter  可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。
                如果delimiter为零长度字符串,则返回包含整个expression字符串的单元素数组。
     count 可选项。被返回的子字符串数目,-1 指示返回所有子字符串。
     Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。
设置
compare参数可以有以下值:
常数 值 描述
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

下面的示例利用Split函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。

Dim MyString, MyArray, Msg MyString = "VBScriptXisXfun!" MyArray = Split(MyString, "x", -1, 1) ' MyArray(0) 包含 "VBScript"。 ' MyArray(1) 包含 "is"。 ' MyArray(2) 包含 "fun!"。 Msg = MyArray(0) & " " & MyArray(1) Msg = Msg & " " & MyArray(2) MsgBox Msg

再如:

stng = "t1,t2,t3" arr = Split(stng,",") MsgBox arr(0) MsgBox arr(1) MsgBox arr(2)

Join 函数

返回一个字符串,此字符串由包含在数组中的许多子字符串连接创建。

Join(list[,delimiter])
参数:list 必选项。包含要连接的子字符串一维数组。
     Delimiter 可选项。在返回字符串中用于分隔子字符串的字符。如果省略,将使用空字符 ("")。
     如果delimiter是零长度字符串,则在同一列表中列出全部项,没有分界符。
     
下面的示例利用Join函数联合 MyArray 的子字符串:

Dim MyString Dim MyArray(3) MyArray(0) = "Mr." MyArray(1) = "John " MyArray(2) = "Doe " MyArray(3) = "III" MyString = Join(MyArray) 'MyString 包含 "Mr. John Doe III"。

再如:

arr = array("t1","t2","t3") MsgBox Join(arr,",")

上面主要对VBS中的相关函数进行了介绍,在实际工作中还经常会遇到一些特殊的处理,并且都十分的实用,下面一一进行举例说明:

例1:一维数组的比较

Dim a Dim b a=Array(10,15,30) b=Array(10,20,30) flag=1 For i=0 To UBound(a)-LBound(a) If a(i)=b(i) Then flag=1 Else flag=0 n=UBound(a) msgbox "数组a"&n&":="&a(i)&","&"数组b"&n&":="&b(i) End If Next

例2:二维数组的比较