主题:  关于UBOUND()的问题~!

rvvlove

职务:普通成员
等级:1
金币:0.0
发贴:30
#12004/11/26 16:46:11
<% 
i = array("1","2","3" 
response.write ubound(i) 
%> 
为何结果: 2 



rvvlove

职务:普通成员
等级:1
金币:0.0
发贴:30
#22004/11/26 16:48:18
<%dim a(11,12) %>
<%= UBound(a) %>
这样结果是,11



rvvlove

职务:普通成员
等级:1
金币:0.0
发贴:30
#32004/11/26 16:56:43
<%dim a(1,2,3) %>
<%= UBound(a) %>
这样结果是,1



rvvlove

职务:普通成员
等级:1
金币:0.0
发贴:30
#42004/11/26 16:58:02
array()是定义数组,那dim a(..)是什么



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#52004/11/26 17:16:19
UBound输入的是数组的维数,数组的维数在设计时是从0开始的,这是VB上的,
但C或C#就不同,如
string[] str = new string[3];
这个3表示数组的长度,即有3个成员,而定数组
str[0] = str1;
str[1] = str2;
str[2] = str3;
str.Length得到的是3,而不是维数2;

总之觉得这数组的设计很糟,有时是0,有时却是1,自己去记忆吧。


非常大鱼

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#62004/11/26 17:17:08
dim a( , ,)表示定义三维的不定长度数组。


非常大鱼

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#72004/11/26 17:22:13
UBound总是返回数组的最大下标,下标从0开始,3个元素自然就返回2

后一个问题,你可以看看 VBSCript 语法。定义的多少,就返回多少(你返回的是第一维的最大下标)



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#82004/11/27 12:20:31
VBS使用数组,一般结合split,除非你已经声明了一个动态数组:dim arraystr(x)
如果不知道数组的维数,如:arraystr(a,b,c,d,e,f,g.......),
可用split拆分,如:dim aa:aa=split(arraystr,“,”),这个时候用ubound(aa)即可得到该数组最大的维数。


难人一个……