VBS数组函数学习实例分析

2019-01-15 22:29:11于海丽

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中的相关函数进行了介绍,在实际工作中还经常会遇到一些特殊的处理,并且都十分的实用,下面一一进行举例说明:

例一:一维数组的比较

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

例二:二维数组的比较

Dim array1(1,1)

array1(0,0)=1
array1(0,1)=2
array1(1,0)=3
array1(1,1)=4
Dim array2(1,1)
array2(0,0)=1
array2(0,1)=2
array2(1,0)=4
array2(1,1)=4
     
flag=1
For i=0 To 1
 For j=0 To 1
  If array1(i,j)=array2(i,j) Then
   flag=1
   Exit for
  Else
   flag=0
   msgbox "array1"&"("&i&","&j&")"&"="&array1(i,j)&","&"array2"&"("&i&","&j&")"&"="&array2(i,j)
  End If
 Next
Next