首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

急Structure 数组有关问题,多谢帮忙

2011-12-22 
急!Structure 数组问题,谢谢帮忙如下所示,数组test1()里面包含两个小数组,如果数据为idloopidloopName11a1

急!Structure 数组问题,谢谢帮忙

如下所示,数组test1()里面包含两个小数组,如果数据为

id loopid loopName
 1 1 a
 1 2 b
 2 1 c
 2 2 d
也就是test1(1).LoopID(1) =1
  test1(1).LoopID(2) =2
  ...
哪位老大知道怎么实现啊!不胜感激


Private Structure Cubicle
  Dim LoopID() As Integer '回路序号
  Dim LoopName() As String '回路名称
end Structure
private test1() as Cubicle
public function getArray() as boolean
redim test1(100) '初使化
...(在这里实现)
end function


[解决办法]
test1(1).LoopID(1) =1 这个好像没有用到里面的loopName哦。
建议你定义成:
Private Structure Cubicle 
Dim LoopID As Integer '回路序号 
Dim LoopName As String '回路名称 
end Structure 

再定义一个
dim CubList as New ArrayList '用来装 Cubicle

'对 一个Cubicle 赋值
dim C as new Cubicle
c.loopID=1
c.loopName=a
'然后储存进 ArrayList
CubList.Add(c)

对ArrayList操作起来比较方便。

'取值 x as integer y as string
x=CubList(i).loopID
y=CubList(i).loopName
'or
c=CubList(i)
x=c.loopID
y=c.loopName

我不知道有没有理解错你的意思。






[解决办法]

探讨
Private Structure Cubicle
Dim LoopID() As Integer '回路序号
Dim LoopName() As String '回路名称
end Structure

loopid ,loopname的大小必须是指定大小。没有你这样声明的吧。我没用过。。。不知道这样可行不。

[解决办法]
探讨
test1(1).LoopID(1) =1 这个好像没有用到里面的loopName哦。
建议你定义成:
Private Structure Cubicle
Dim LoopID As Integer '回路序号
Dim LoopName As String '回路名称
end Structure

再定义一个
dim CubList as New ArrayList '用来装 Cubicle

'对 一个Cubicle 赋值
dim C as new Cubicle
c.loopID=1
c.loopName=a
'然后储存进 ArrayList
CubList.Add(c)…

[解决办法]
你要实现把数放到test1()里面。可以参考:
dim c as new cubicle
c.loopID(1)=1
c.loopName(1)=a
test1(1)=c
c=new cubicle
c.loopID(2)=2
c.loopName(2)=b
test1(2)=c

试一试。
[解决办法]
c()为数组,不管里面有多少项,你每一个数组的数据应该都有一定的规律的,就可以用循环语句。可以处理的。
如果数组没有规律,或数据没有规律。那谁都帮不了你的。
既然是客户给你的这些他们在用的,在他们那里可以调用的数据,结构,数组等。应该有规律的,应该可以处理的,不然他们也完蛋了。
哎。对于具体问题,还是要具体分析。
呵呵。下班了。
明天继续跟踪...
[解决办法]
回宿舍了。补充:

根据以上的内容和你提供是数据,你要处理的应该是一个表,所以,表的字段个数也应该有限制吧。像access的
应该不可以超过255个对吧。
你的客户给要你做的或者你的问题,应该就是是把这个表的数据放到一个一维数组里面。一维数组里面的数据刚好是一个
结构体。结构体里面的字段(暂时这样理解)也同样有限,可以超过255个,但不可能无数个吧。
这样就好像用ado里面的 Rs.GetRow()【返回的是一个二维数组】一样的道理。
如果这个你懂或有用过,对处理你上面的问题很有帮助。
GetRow()参考:http://www.dwww.cn/News/2007-11/2007117221865923.shtml
GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识记录号
所以rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值

我上面说的循环,就在一维数组的循环。循环里面就处理你的结构体里面的数据,参考我上面的赋值取值方法,结构体里面放几百项,你就处理几百项,还怕他什么,呵呵。只是效率和性能问题。
这样的思路,应该可以解决你的问题的。明天继续跟踪...
[解决办法]
探讨
你要实现把数放到test1()里面。可以参考:
dim c as new cubicle
c.loopID(1)=1
c.loopName(1)=a
test1(1)=c
c=new cubicle
c.loopID(2)=2
c.loopName(2)=b
test1(2)=c



试一试。


[解决办法]
redim Preserve 重新定义数组,并保存之前的数据。
解决了就好。

热点排行