- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章VBS数组函数学习实例分析(二)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Array 函数 返回包含数组的Variant.
Array(arglist) 。
参数:arglist是赋给包含在Variant中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则将会创建零长度的数组。 说明:用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号.
在下面的示例中,第一条语句创建名为 A 的变量。第二条语句将一个数组赋值给变量 A。最后一条语句将包含在第二个数组元素中的值赋值给另一个变量.
1
2
3
|
arr = array(
"t1"
,
"t2"
)
MsgBox arr(0)
MsgBox arr(1)
|
注意未作为数组声明的变量仍可以包含数组。虽然包含数组的Variant变量与包含Variant元素的数组变量有概念上的不同,但访问数组元素的方法是相同的.
IsArray 函数 。
返回 Boolean 值指明某变量是否为数组.
IsArray(varname) 参数:varname可以是任意变量。 说明:如果变量是数组,IsArray函数返回True;否则,函数返回False。当变量中包含有数组时,使用IsArray函数很有效.
下面的示例利用IsArray函数验证 MyVariable 是否为一数组:
1
2
3
4
5
6
|
Dim
MyVariable
Dim
MyArray(3)
MyArray(0) =
"Sunday"
MyArray(1) =
"Monday"
MyArray(2) =
"Tuesday"
MyVariable = IsArray(MyArray)
' MyVariable 包含 "True"。
|
UBound 函数 。
返回指定数组维数的最大可用下标.
UBound(arrayname[, dimension]) 参数:arrayname 必选项。数组变量名,遵循标准变量命名规则。 Dimension 可选项。指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略dimension参数,则默认值为 1。 说明:UBound函数与LBound函数一起使用,用于确定数组的大小。使用LBound函数可以确定数组某一维的下界。 所有维的下界均为 0。对于有这样维数的数组,UBound函数返回以下结果:
1
2
3
4
5
|
Dim
A(100,3,4)
语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
|
LBound 函数 。
返回指定数组维的最小可用下标.
LBound(arrayname[, dimension]) 参数:arrayname 数组变量名,遵循标准变量命名规则。 Dimension 指明要返回哪一维下界的整数。 使用 1 表示第一维,2 表示第二维,以此类推。如果省略dimension参数,默认值为 1。 说明:LBound函数与UBound函数共同使用以确定数组的大小。使用UBound函数可以找到数组某一维的上界。任一维的下界都是 0.
1
2
3
4
|
arr = array(
"t1"
,
"t2"
,
"t3"
)
For
i=0
To
UBound(arr)-LBound(arr)
MsgBox arr(i)
Next
|
Split 函数 。
返回基于 0 的一维数组,其中包含指定数目的子字符串.
Split(expression[, delimiter[, count[, start]]]) 参数:expression 必选项。字符串表达式,包含子字符串和分隔符。如果expression为零长度字符串,Split返回空数组,即不包含元素和数据的数组。 delimiter 可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。 如果delimiter为零长度字符串,则返回包含整个expression字符串的单元素数组。 count 可选项。被返回的子字符串数目,-1 指示返回所有子字符串。 Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。 设置 compare参数可以有以下值: 常数 值 描述 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文本比较.
下面的示例利用Split函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串.
1
2
3
4
5
6
7
8
9
|
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
|
再如:
1
2
3
4
5
|
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 的子字符串:
1
2
3
4
5
6
7
|
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"。
|
再如:
1
2
|
arr = array(
"t1"
,
"t2"
,
"t3"
)
MsgBox Join(arr,
","
)
|
上面主要对VBS中的相关函数进行了介绍,在实际工作中还经常会遇到一些特殊的处理,并且都十分的实用,下面一一进行举例说明:
例1:一维数组的比较 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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:二维数组的比较 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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
|
例3:使用循环来比较数组里是否包含某值 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Dim
arr, i, str
arr = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
"a"
,
"b"
,
"c"
,
"d"
,
"f"
,
"g"
)
str =
"a"
For
i = 0
To
UBound(arr)
If
arr(i) = str
Then
Exit
For
end if
Next
If
i <= UBound(arr)
Then
msgbox
"arr中包含str的值!"
Else
msgbox
"arr中不包含str的值!"
End
If
|
例4:使用函数组合来比较数组里是否包含某值(优化逻辑) 。
1
2
3
4
5
6
7
8
|
Dim
arr, i, str
arr = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
"a"
,
"b"
,
"c"
,
"d"
,
"f"
,
"g"
)
str =
"a"
If
InStr(Join(arr,
"|"
), str) > 0
Then
msgbox
"arr中包含str的值!"
Else
msgbox
"arr中不包含str的值!"
End
If
|
灵活应用各种函数命令,可以节约大量的多余代码,不仅精简代码结构,提供执行效率.
例5:VBS中数组作为函数的返回值 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Function
GenerateRandom()
Dim
myarray(2)
Dim
aa, bb, cc
Dim
myvalue, bbbase, ccbase
bbbase=array(
"Beijing"
,
"NewYork"
,
"Copenhagen"
,
"Paris"
,
"London"
,
"Gothenborg"
)
ccbase=array(
"China"
,
"America"
,
"Denmark"
,
"Franch"
,
"England"
,
"Sweden"
)
'Get a number contains 8 characters
aa= Int((99999999 - 11111111+ 1) * Rnd + 11111111)
' Get a number between 1 to 6
myvalue=Int((6 * Rnd) + 1)
bb=bbbase(myvalue)
cc=ccbase(myvalue)
myarray(0)=
CStr
(aa)
myarray(1)=bb
myarray(2)=cc
GenerateRandom=myarray
End
Function
'****************************************************
' Call the function
Dim
testarr
testarr=GenerateRandom
msgbox testarr(0)
msgbox testarr(1)
msgbox testarr(2)
|
例6:数组排序 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Function
fSortArray(aSortThisArray)
Dim
oArrayList, iElement
Set
oArrayList = CreateObject(
"System.Collections.ArrayList"
)
For
iElement = 0
To
UBound(aSortThisArray)
oArrayList.Add aSortThisArray(iElement)
Next
oArrayList.Sort
set fSortArray = oArrayList
End
Function
myarray=Array(50,20,30)
MsgBox myarray(0)
MsgBox fSortArray(myarray)(0)
|
'CreateObject( "System.Collections.ArrayList" )调用了mscoree.dll,是.NET Framework相关组件.
原文链接:http://www.cnblogs.com/wakey/p/5798360.html 。
最后此篇关于VBS数组函数学习实例分析(二)的文章就讲到这里了,如果你想了解更多关于VBS数组函数学习实例分析(二)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我使用 IBM Personal Communications 12.0.3.0 的宏记录器制作了一个凭据输入宏。它只是在调用时输入我的用户名和密码。 sub Credentials() Dim
该批处理更改了 vbs 代码,使其无法供 vbs 使用。我该如何解决这个问题? 批号: echo Const HIGH = 128 >> prio.vbs echo strComputer = "."
我有 2 个 vbs 文件。 A.vbs: Class test public a public b End Class B.vbs: Dim objShell Set objShell =
以下是我用来尝试在 IIS 6 中创建虚拟目录的条目: [Run] Filename: {tmp}\cscript.exe mkvirtdir.vbs; Parameters: "-c LocalHo
核心vbs代码 ? 1
对于vbs中ping的实现可以通过两种方式 : 1、调用系统ping命令; 2、使用wmi查询pingstate类处理。 1、调用系统ping命令
在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡; 1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项, 2.注册: 注册成功会将用户账户与密码存入用户数据txt文档中
复制指定文件到指定目录下 核心代码 ? 1
复制代码 代码如下: On Error Resume Next Dim WshShell, QQPath, QQselect set wshshell=createobject("
运行前请确定你的电脑安装了word。 复制代码 代码如下: i=0 set wshshell=createobject("wscript.shell") Set objWo
参考代码一: 复制代码 代码如下: Function DeleteLog( ) Dim objFSO, objFolder, strPath,
挺实用的一段代码,用来深入学习vbs,确实不错咯。 复制代码 代码如下: On Error Resume Next '忽略所有错误 Dim filename '声明变量 Di
话说还是闲来练手,初步实现了自己认为的“多线程”下载。(至于是不是多线程,可以参考12楼链接) 为避免冗余,省了一些错误检查。我觉得没多大实际用途,有兴趣的兄弟一起学习讨论呗。欢迎大家指正: 复制
复制代码 代码如下: set oDOM = WScript.GetObject("http://ipseeker.cn//") flag=0 for i=1 to 10 &n
复制代码 代码如下: on error resume next url = " http://www.bathome.net/logging.php?action=login"
效果图: 代码都封装成函数了,方便调用: 复制代码 代码如下: Key = "www-enun-net" '不要用数字
打开狗狗影视,搜索自己需要的资源,资源类型选:电驴,如下图: 我找到一个 19.75gb 的: 点开它,出现如下图的界面,可以看到正常下载地址已被屏蔽。我们复制地址栏中的网址,备用。
最近相关的备份比较频繁,为了校验文件的完整性,老是要打开某文件HASH校验工具,比较麻烦,于是乎写了这个东东,文件较大时计算有点慢,文件的MD5值保存在剪贴板!效果如图: 使用方法: 1.先
CMD当前路径 复制代码 代码如下: test = createobject("Scripting.FileSystemObject").GetF
For Next 语句的基本结构为: 复制代码 代码如下: For counter = start To end [Step step] [statements] [Exit For] [st
我是一名优秀的程序员,十分优秀!