如何取得数组的长度?

soec 2003-09-29 09:35:35
如何取得数组的长度?
Dim tmp(1, 1) As String
tmp(0, 0) = "aaaa"
tmp(0, 1) = "bbbb"
tmp(1, 0) = "cccc"
tmp(1, 1) = "dddd"
a=len(tmp) '出错
...全文
1199 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yichi 2003-09-30
  • 打赏
  • 举报
回复
如果不知道数组的维数,那么需要先判断数组维数.然后再通过判断各维的上下限求得数组的大小.
判断数组维数的方法

Public Function weishu(sz() As String) As Integer
Dim i As Integer
Dim count As Integer

On Error GoTo BoundError
For i = 1 To 61 '不会有这么多维数的数组,vb最多支持60维
count = LBound(sz(), i)
Next
BoundError:
weishu = i - 1

End Function



然后再用函数判断数组长度就可以了.
Public Function changdu(shuzu() As String) As Integer
Dim count As Integer
Dim i As Integer
If IsArray(shuzu) And weishu(shuzu) Then
count = 1


For i = 1 To weishu(shuzu)
count = count * (UBound(shuzu, i) - LBound(shuzu) + 1)
Next i
End If
changdu = count
End Function
其实方法很多的,因为我是初学,所以只好用这些最笨的方法了.
其实判断数组维数的方法以前有朋友介绍过用 copymemory方法解决的,可是我不是十分熟练,所以就没有贴出来!!
arvid_gs 2003-09-30
  • 打赏
  • 举报
回复
ubound lbound 之后根据数据的类型做计算!
ibm123 2003-09-30
  • 打赏
  • 举报
回复
使用LenB即可:

LenB 返回的是用于代表字符串的字节数,而LEN返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。




myhgyp 2003-09-30
  • 打赏
  • 举报
回复
同意楼上
easydone 2003-09-30
  • 打赏
  • 举报
回复
对于多维数组,你可以使用ubound求出每维的元素个数,然后根据数组的类型,计算出大小来。
feiqinfeiwhw 2003-09-30
  • 打赏
  • 举报
回复
第一项长度是ubound(tmp,1)-lbound(tmp,1)+1
第二项长度是ubound(tmp,2)-lbound(tmp,2)+1
horsefly 2003-09-30
  • 打赏
  • 举报
回复
用ubound()[取数组的上限]和lbound()[取数组的下限]内部函数取
如:
ubound(tmp,2)表示取第2维的上限。
ubound(tmp,1) or ubound(tmp)表示取第1维的上限。
lbound(tmp,2)表示取第2维的下限。
lbound(tmp,1) or lbound(tmp)表示取第1维的下限。

soec 2003-09-29
  • 打赏
  • 举报
回复
?????????
soec 2003-09-29
  • 打赏
  • 举报
回复
我是要取得整个数组所占用的内存....
neo40 2003-09-29
  • 打赏
  • 举报
回复
动态获取数组的值,例如 a=len(tmp(i,j))
MSSQL 2003-09-29
  • 打赏
  • 举报
回复
dim temp as string
for i=0 to 1
for j=0 to 1
temp=temp & tmp(i,j)
next j
next i
a=len(temp)

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧