VBS中函数返回数组值是怎么做的,希望能给举个例子。谢谢

VBS中函数返回数组值是怎么做的,希望能给举个例子。谢谢,第1张

下边是个简单的例子,示例如何在Function过程中返回数组

x=GetArr(9) '调用getarr过程返回10(0-9)个元素的数组,并赋值给x

For i = 0 To UBound(x) '枚举刚才返回的数组

arrstr=arrstr & "GetArr(" & i & ")=" & x(i) & vbCrLf

Next

Msgbox arrstr '显示结果

Function GetArr(x)

ReDim f(x) '动态根据变量调整数组大小

For i = 0 To x

f(i)= rnd '生成随机变量

Next

GetArr=f '数组赋给返回值

End Function

c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数) 如: {int data[4];int length;length=sizeof(data)/sizeof(data[0]); //数组占内存总空间,除以单个元素占内存空间大小printf("length of data[4]=%d", length );

'给数组赋值

dim d(6) as integer

d(1)=11

d(2)=32

d(3)=25

d(4)=45

d(5)=9

d(6)=5

'获取最大值(采用打擂台的思路)

dim MyMax as integer

dim i as integer

MyMax = d(1) '假设第1个元素最大

for i = 2 To Ubound(d) '从第2个元素开始到最后一个元素

'如果当前元素比MyMax的值大,就把当前元素保存到MyMax

if d(i) > MyMax Then

MyMax = d(i)

end if

next i

msgbox MyMax

变量你肯定知道吧,比如i,j,data,str这些都是基本的变量,但是你发现了吗,有时候在使用普通变量的时候有个不方便的地方

举个例子:

将号码分别为1,2,3,4……100的成绩存放在变量里面共下面调用,用普通的方法必须是定义100个变量,分别为xuesheng2,xuesheng2,xuesheng3直到xuesheng100,将成绩分别存放在这100个变量里面,相当于将需要存放的成绩存放在一个一个的箱子中,用的时候到箱子里面拿出来。这样是不是很麻烦?

因此,vbs也提供了一种特殊的变量,这种变量可以存放很多数据,这种变量相当于一个仓库,这个仓库里面存放着很多箱子,每个箱子的名字不再是随便取的而是按照仓库的名字加序号递增的,比如仓库的名字是学生,那么仓库里面的箱子的编号是0,1,2,3,4,5,6,7……直到仓库的可存放的箱子数量的极限。假如仓库的名字是xuesheng那么里面的箱子的名字就是xuesheng(0),xuesheng(1),xuesheng(2),xuesheng(3),xuesheng(4),……

1、赋值

其实这就是数组,数组的定义很简单,看看一维数组的定义:

dim arrayname(10)

意思就是定义一个数组,这个数组由11个元素组成,分别是0,1,2,3,4,5,6,7,8,9,10(注:这一点与其他语言不同,其他语言中定义了10是不允许使用10号元素的,可先不管),记住在未指定的情况下,数组元素编号从0开始。你可以对数组进行赋值:

基本方法:

arrayname(0)="hello"

arrayname(1)="你好"

arrayname(2)="中国"

arrayname(3)="四川"

arrayname(4)="大学"

arrayname(5)="下雨"

arrayname(6)="7月"

函数法:(注意:此法在使用中不能数组指定大小)

正确:

dim arr

arr=Array(0,1,2,3,4,5,6,7,8,9,10)

msgbox arr(10)

错误:

dim arr(10)

arr=Array(0,1,2,3,4,5,6,7,8,9,10)

msgbox arr(10)

2、引用

既然定义的数组又规定数组的名字有一定的规律那么我们就可以使用这个规律

在使用的时候可以用"数组名(编号)"。

例如:

dim arr

arr=Array(0,1,2,3,4,5,6,7,8,9,10)

for i=0 to 10

msgbox array(i)

next

3、二维数组,多维数组在你立即恶劣一维后就慢慢理解了

dim myarray(3,4)就是定义了一个4行5列的数组(行列都加1)

x,x,x,x,x

x,x,x,x,x

x,x,x,x,x

x,x,x,x,x

引用对应位置只需要指定即可

例如myarray(2,3)就是指定3行4列的那个元素。

楼主我大概给你解释一下吧。。 <%filePath=servermapPath("data/rctxt") '这里获取文件路径 set fso=servercreateobject("scriptingFileSystemObject") '创建文件对象 set myFile=fsogetFile(filePath) '获取文件 if myFilesize<>0 then '如果文件内容不等于0 set openfile=fsoopentextfile(filePath,1) '就打开文件 aa=trim(openfileReadAll) '读取文件中所有内容,并赋给aa变量 '从文本rctxt中提取所有内容赋给变量aa rcArr=split(aa,"$a") '用split分割内容,$a做分割符 '把变量aa的值以“$a”字符拆分并放到数组rcArr()中 j=0 for i=0 to ubound(rcArr)-1 'ubound获取数组最大上标,因为vbs里的数组下标从0开始,所以需要减1。 '因最后一个数组元素为空,所以用ubound(rcArr)-1 rcArr1=split(rcArr(i),"$(a)")

希望采纳

Sums = Inputbox("请输入数字组,以逗号隔开:"," 提示:","1,2,3,4,5,6,7,8,9,10")

Sum = split(Sums,",")

For i = 0 to ubound(Sum)

For j = 0 to ubound(Sum)

If int(Sum(i)) > int(Sum(j)) Then

swap sum,i,j

End if

Next

Next

For o = 0 to Ubound(Sum)

msgbox Sum(o) '这儿输出的数组就是从大到小排列的。你看一下,有问题追问

Next

Sub swap(arr,x,y)

t=arr(x)

arr(x)=arr(y)

arr(y)=t

End Sub

在定义数组的函数内可以直接使用sizeof(定义的数组名)/sizeof(数组的类型)来获取数组的长度

但如果数组是从函数外以作为参数传入进来的,而非在本函数内定义的,那么ta就会退化为一个指针,无法用以上这种方式获取到ta的长度。这时候如果需要数组的长度要么在定义这个数组的函数使用上面那种方法进行计算后一并传入需要使用的函数,或者自己遍历数组进行一个一个计数大小。

以上就是关于VBS中函数返回数组值是怎么做的,希望能给举个例子。谢谢全部的内容,包括:VBS中函数返回数组值是怎么做的,希望能给举个例子。谢谢、应该如何才能获得该数组大小、VB.NET 数组内容比较大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10154686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存