请教关于数组未知长度定义的问题

bronica_chen 2010-03-04 11:13:01
我一开始定义的数组: Dim A() As Integer
但在后来,我所定义的数组的长度是根据表里面的记录来定义的。
我通过table.rowcount获取了长度后定义只能用Redim An(table.rowcount)这种方法吗?
比如我知道A(1)的数据后,我要保留A(1)的值的。后面再Redim不是我的数据都没了么?

比如程序是这样:
请教该如何保留我原来的数据

function counta()
dim a() as integer
dim i as integer
dim table as datatablereader
sql = select * from XX
...
redim a(table.rowcount) //如果我下次再调用这个函数的时候a()数组被重新定义了,我的数据就没有了吧
for i=0 to table.rowcount
...
a(i) = a(i) +1 //a(i)的值我要保留的。下次调用后继续累加的。
...
next i
end function


...全文
256 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingyuebuyu 2010-03-04
  • 打赏
  • 举报
回复
IndexOf函数的返回值就是第一次出现的位置,-1表示没找到
bronica_chen 2010-03-04
  • 打赏
  • 举报
回复
哈哈。是不是有一个统计一个字符串第一次出现的位置的函数的??
bronica_chen 2010-03-04
  • 打赏
  • 举报
回复
计算表中每列的值的累计
=============
thanks cpp2017

不是每列的值。比如我有一张表
id data
1 123453434345454
2 234444421212121
3 124323234444444
...
我就把data这一字段中每个数字取出来。比如第一行中data字段,把这字段的每个数字取出来,统计第一个是4的,后面则不计,则a(4)=1,第二行第1个4是第三位,第三行第一个4是第三位。所以a(3)=2
以此类推的。
xingyuebuyu 2010-03-04
  • 打赏
  • 举报
回复
那就这样吧
Redim Preserve An(table.rowcount)
就会保留原来An数组里面的内容;
cpp2017 2010-03-04
  • 打赏
  • 举报
回复
我的功能是要计算每个的值
==>计算表中每列的值的累计?
bronica_chen 2010-03-04
  • 打赏
  • 举报
回复
我这功能不能用arraylist的。我的功能是要计算每个的值,但并不是按顺序来计算的。
很有可能第一次调用找的数字4是在循环的第1位,第二次再调用的时候要找的数字4就在最后一位。所以我要统计4的个数定义a(1)...a(table.rowcount).就是统计4在第一位。。。第table.rowcount的个数的。
bronica_chen 2010-03-04
  • 打赏
  • 举报
回复
谢谢楼上的提醒。
我刚也看了些关于arraylist的一些用法
下面是刚修改过的代码。请帮我看下是否正确。谢谢!


function counta()
dim a as new arraylist()
dim i as integer
dim table as datatablereader
sql = select * from XX
...
for i=0 to table.rowcount
...
a.add(i) = a(i) + 1
next i
end function

cpp2017 2010-03-04
  • 打赏
  • 举报
回复
那请问如果用arraylist的话,我刚那段code如何修改呢?
===============
不要想着完成你的功能,先学会用ArrayList
用法很简单,

对象.Add元素就可。

bronica_chen 2010-03-04
  • 打赏
  • 举报
回复
那请问如果用arraylist的话,我刚那段code如何修改呢?
xingyuebuyu 2010-03-04
  • 打赏
  • 举报
回复
Redim Preserve An(table.rowcount)
就会保留原来An数组里面的内容;

不过建议还是用楼上说的ArrayList来存数据
cpp2017 2010-03-04
  • 打赏
  • 举报
回复
你可以用ArrayList
xingyuebuyu 2010-03-04
  • 打赏
  • 举报
回复
我这里a=3,你在重新事实上
bronica_chen 2010-03-04
  • 打赏
  • 举报
回复

dim data as string = "1234556"
dim a as integer
a = data.indexof("4") //为什么我搜索4的位置的时候,结果是0呢

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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