- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章VBS数组函数学习实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
下面来具体讲解下几个数组函数的使用方式:Array函数 。
返回包含数组的Variant.
Array(arglist) 。
arglist参数是赋给包含在Variant中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则将会创建零长度的数组.
说明 。
用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号。在下面的示例中,第一条语句创建名为 A 的变量。第二条语句将一个数组赋值给变量 A。最后一条语句将包含在第二个数组元素中的值赋值给另一个变量.
arr = array("t1","t2")MsgBox arr(0)MsgBox arr(1)
注意未作为数组声明的变量仍可以包含数组。虽然包含数组的Variant变量与包含Variant元素的数组变量有概念上的不同,但访问数组元素的方法是相同的.
IsArray 函数 。
返回 Boolean 值指明某变量是否为数组.
IsArray(varname)
varname参数可以是任意变量.
说明 。
如果变量是数组,IsArray函数返回True;否则,函数返回False。当变量中包含有数组时,使用IsArray函数很有效.
下面的示例利用IsArray函数验证 MyVariable 是否为一数组:
Dim MyVariableDim 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函数返回以下结果:
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.
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函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。说明 。
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 ba=Array(10,15,30)b=Array(10,20,30) flag=1For 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 IfNext
例二:二维数组的比较 。
Dim array1(1,1) 。
array1(0,0)=1array1(0,1)=2array1(1,0)=3array1(1,1)=4Dim array2(1,1)array2(0,0)=1array2(0,1)=2array2(1,0)=4array2(1,1)=4 flag=1For 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 NextNext
例三:使用循环来比较数组里是否包含某值 。
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 ifNextIf i <= UBound(arr) Then msgbox "arr中包含str的值!" Else msgbox "arr中不包含str的值!"End If
例四:使用函数组合来比较数组里是否包含某值(优化逻辑) 。
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
灵活应用各种函数命令,可以节约大量的多余代码,不仅精简代码结构,提供执行效率.
例五:VBS中数组作为函数的返回值 。
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=GenerateRandommsgbox testarr(0)msgbox testarr(1) msgbox testarr(2)
例六:数组排序 。
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 = oArrayListEnd Function myarray=Array(50,20,30)MsgBox myarray(0)MsgBox fSortArray(myarray)(0) 'CreateObject( "System.Collections.ArrayList" )调用了mscoree.dll,是.NET Framework相关组件。
最后此篇关于VBS数组函数学习实例分析的文章就讲到这里了,如果你想了解更多关于VBS数组函数学习实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
有没有一种方法可以使用标准类型构造函数(例如 int、set、dict、list、tuple 等)以用户定义的方式将用户定义类的实例强制转换为其中一种类型?例如 class Example:
我知道这个问题在Stackoverflow中有很多问题,但是即使有很多答案,这些答案也帮不了我什么,也没有找到答案。 在我的WebAPP中,它可以正常工作,但是当我将其转换为API时,它失败了(主题标
这个问题已经有答案了: Why does the ternary operator unexpectedly cast integers? (3 个回答) 已关闭 9 年前。 最近遇到一个Java的陷
我尝试使用 FirebaseApp.configure() 配置 Firebase,但遇到以下崩溃: *** Terminating app due to uncaught exception 'c
我有一个自连接员工实体类,其中包含与其自身相关的 id、name 和 ref 列。我想创建它的新实例并将其保存到数据库。 首先我创建了一个 Employee 类的实例并将其命名为 manager。然后
我有一个用于添加新公寓的表单,在该表单中我有一个下拉列表,用户可以在其中选择负责的人员。 显然,当您从下拉列表中选择并尝试保存公寓时,我的应用程序认为该人已被修改。它给了我下面的错误,指示我应该首先保
从 Visualforce 页面,我需要检索我们组织的 salesforce 实例的 URL,而不是 Visual Force URL。 例如我需要https://cs1.salesforce.com
我遇到了一些可能的问题答案,但这是关于从 Hibernate 3.4.0GA 升级到 Hibernate 4.1.8 的问题。所以这曾经在以前的版本下工作,我已经四处搜索了为什么它在这个新版本中出现了
似乎一遍又一遍地问这个问题,我仍然找不到解决我问题的答案。我在下面有一个域模型。每个新创建或更新的“安全用户”都需要我确保其具有配置文件,如果没有,则创建一个新的配置文件并分配给它。 配置文件的要求相
我很难调试为什么 JPA 不级联我的 @ManyToMany 关系。我发现的所有答案都与缺少级联语句有关。但我确实拥有它们并且仍然得到: Caused by: org.hibernate.Transi
Play 服务 API 表明有一个叫做 Instance ID 的东西 但是,在 Android Studio 中包含以下内容后,我无法导入 InstanceID 类 compile "com.goo
我正在使用 Seam 框架。我有 2 个实体: 请求.java @Entity @Table(name = "SRV_REQUEST") public class Request { private
This question处理构建一个适当的Monad来自单子(monad)的实例,但仅在某些约束下 - 例如Set .诀窍是将其包装成 ContT ,它将约束推迟到包装/展开其值。 现在我想对 Ap
我正在尝试执行此查询: StringBuffer sb = new StringBuffer(); sb.append("select p from PointsEntity p " + "where
我试图了解是否可以更改我的 hibernate 配置并使用单个 MySQL 实例(而不是我当前拥有的多个 MySQL 实例): 我有一个使用 hibernate 的 Java 应用程序,与 2 个模式
我有一个选项卡滑动布局,其中包括四个选项卡,每个选项卡都有自己的布局和 fragment ,在我的主要 Activity 布局中,viewpager 参与更改选项卡。特定 View (选项卡)在应用程
我看到很多帖子声称他们正在运行 MySql 的 RDS 实例,但无法连接到该实例,但我没有运行 RDS。 我使用 EC2 实例来托管我的 WordPress 博客,该博客是使用 Web 平台安装程序安
因为我在我的 ec-2 实例上的 python 虚拟环境中运行应用程序( Airflow ),并且我想在同一个 ec2 实例上的默认 python 环境中运行命令,所以我认为 ssh 到我自己的实例更
这个问题已经有答案了: How to fix the Hibernate "object references an unsaved transient instance - save the tra
例子: run APP1 .. ... run APP1 ... run APP2 如何在 APP2 中对 Vue 说我需要调用 APP1?
我是一名优秀的程序员,十分优秀!