乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 342|回复: 14

有阵列吗?

[复制链接]

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 13:35:20 | 显示全部楼层 |阅读模式
本人'我有一个程序;我正在努力,我需要创建一个信息列表 基于各种搜索I'我做完了,我'我现在可能比以前更困惑了 本人'我不知道最好的方法是什么(编写字典、数组、集合等),但我&35;039;我想学习如何使用arrray
所以这里's勺…
程序I'm将创建一系列图形,并向其中添加各种布局选项卡 对于初学者,我需要根据文件名以及与之相关联的布局选项卡来收集图形信息
例如:;图纸#039;A'可以有布局选项卡'A&#039'B&#039'C 图纸#039;B#039;可以有布局选项卡'A1和039'A2&#039'A3和039'A4和#039'A5和039;等等等等
I'我目前正在从我的程序的listview框中收集信息(请参阅随附的DVB) 当你点击;“创建项目文件”;按钮,它循环浏览listview中的条目 但我需要做的是收集以下信息:绘图#039;A&#039
布局选项卡'A&#039
布局选项卡'B#039
布局选项卡'C#039
图纸'B#039
布局选项卡'A1和039
布局选项卡'A2和039
布局选项卡'A3和039
布局选项卡'A4和039
布局选项卡'A5和039
等等…
那么我需要做一个数组吗(就好像一个简单的数组没有给我足够的悲伤) 我希望这有意义。

np5jkvcwnxg.png

np5jkvcwnxg.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 14:17:07 | 显示全部楼层
一种方法是收集 可以创建具有名称的DwgInfo对象(图a);并且有一个集合,您可以在其中存储布局名称
类似这样的内容:在名为DwgInfo的类模块中[代码然后在代码模块中:
  1. Public Sub Test()
  2.     Dim dwg1 As DwgInfo
  3.     Dim dwg2 As DwgInfo
  4.     Dim colDwg As Collection
  5.    
  6.     Dim i As Integer
  7.    
  8.     Set colDwg = New Collection
  9.    
  10.     Set dwg1 = New DwgInfo
  11.     Set dwg2 = New DwgInfo
  12.    
  13.     dwg1.Name = "Drawing A"
  14.     dwg1.add ("A")
  15.     dwg1.add ("B")
  16.     dwg1.add ("C")
  17.    
  18.     dwg2.Name = "Drawing B"
  19.     dwg2.add ("A1")
  20.     dwg2.add ("A2")
  21.     dwg2.add ("A3")
  22.    
  23.     For i = 1 To dwg1.Count
  24.       'do your stuff here
  25.         Debug.Print dwg1.Item(i)
  26.     Next i
  27.    
  28.     For i = 1 To dwg2.Count
  29.      'do your stuff here
  30.         Debug.Print dwg2.Item(i)
  31.     Next i
  32.    
  33.    
  34. End Sub
此外,在您的代码模块中,您可以有另一个集合来保存dwgInfo对象,然后迭代该集合来发挥您的魔力
如果使用数组,则必须调整其大小以添加集合速度可能较慢但更易于用于动态大小数据的元素
只有我的2美分。
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 14:25:47 | 显示全部楼层
本人'我不确定收藏会是一种方式,因为1)图形/布局选项卡的数量会因情况而异,2)如何确定某个项目是否已经在收藏中 不存在函数 这是一个单独的函数吗
I'我真的很想弄清楚这个数组 It#039;他快把我逼疯了
谢谢你的意见。
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 15:41:40 | 显示全部楼层
托妮:这里'是“创建项目文件”按钮后面的代码
  1. Private Sub cmdSetup_Click()
  2.     Dim i As Integer
  3.     Dim intFileNumber As Integer
  4.     Dim strLayout As String, strFileName As String
  5.     For i = 1 To lvTech.ListItems.Count
  6.         intFileNumber = lvTech.ListItems(i)
  7.         strLayout = lvTech.ListItems(i).ListSubItems(1)
  8.         strFileName = lvTech.ListItems(i).ListSubItems(3)
  9.         Debug.Print strFileName
  10.         Debug.Print strLayout
  11.     Next i
  12. End Sub
这就是它在即时窗口中吐出的内容
这是基于你在我第一篇帖子中看到的图片。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2008-5-2 16:11:06 | 显示全部楼层
如果我'我理解你'重新瞄准正确的目标(我可能不是…)David Blackmon发布的代码似乎完全符合您的要求-对于每个图形,创建一个新的DwgInfo对象,将布局添加到其中,然后将其添加到集合 如果需要,您可以编写一个exists属性,该属性在集合中循环?
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 16:13:23 | 显示全部楼层

收藏是最好的方式吗 还是阵列更好 只是好奇。
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 16:22:15 | 显示全部楼层
还有一个问题
  1.     Dim dwg1 As DwgInfo
  2.     Dim dwg2 As DwgInfo
提供的代码有2个变暗 我想,我怎么能这样呢;dim“;当我遇到更多的图画时,更多的在飞
It'已经很久了,我'我已经盯着这个代码好几个小时了,它35;039;一切都变得模糊了,请原谅我'我在问“你是谁?”;“愚蠢”;问题&nbsp 
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 16:24:03 | 显示全部楼层

收藏是最好的方式吗 还是阵列更好 只是好奇
实际上,这取决于你想用它们做什么 与数组相比,集合有两个优点-添加到集合中非常简单,与不使用的数组不同'不要担心它有多满,你是否有空间,空间在哪里 其次,您可以通过索引或键引用集合中的项目,数组只能使用索引;收集理论上比数组慢,但我怀疑你35;039;d通知 不过,要记住的一件事是,收藏#039;索引从1开始,而不是从0开始
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2008-5-2 16:38:00 | 显示全部楼层
您应该能够在循环中创建对象,如下所示:(注意,未测试)
  1. Public Sub Test()
  2.     Dim dwg As DwgInfo
  3.     Dim colDwg As Collection
  4.    
  5.     Dim i As Integer
  6.     Dim j As Integer
  7.     Set colDwg = New Collection
  8.    
  9.     For i = 1 To lvTech.ListItems.Count
  10.         Set dwg = new DwgInfo
  11.         dwg.Name = lvTech.ListItems(i).ListSubItems(3)
  12.         For j = 1 To dwg.Count
  13.             dwg.add( -insert the code for the layout in here- )
  14.         Next j
  15.         colDwg.add(dwg)
  16.     Next i
  17.    
  18. End Sub
无论如何,是这样的 你'我需要做一些健全的检查-再次,未经测试
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2008-5-2 16:38:33 | 显示全部楼层
你可以调暗一个变量,并反复使用它
  1. Public Sub Test()
  2.     Dim dwg1 As DwgInfo
  3.     Dim dwg2 As DwgInfo
  4.     Dim colDwg As Collection
  5.    
  6.     Dim i As Integer
  7.     Dim j As Integer
  8.    
  9.    
  10.     Set colDwg = New Collection
  11.    
  12.     Set dwg1 = New DwgInfo
  13.     Set dwg2 = New DwgInfo
  14.    
  15.     'loop thru the possible drawing names here and add them to the colDwg
  16.     For i = 1 To 5
  17.         Set dwg1 = New DwgInfo
  18.        'add another loop here to add each layout to the dwg1 object
  19.         dwg1.Name = "Drawing A" + Str(i)
  20.         dwg1.add ("A" + Str(i))
  21.         dwg1.add ("B" + Str(i))
  22.         dwg1.add ("C" + Str(i))
  23.         colDwg.add dwg1
  24.         Set dwg1 = Nothing
  25.     Next i
  26.    
  27.     For i = 1 To 5
  28.         Set dwg2 = colDwg.Item(i)
  29.         For j = 1 To dwg2.Count
  30.             Debug.Print dwg2.Item(j)
  31.         Next j
  32.    
  33.     Next i
  34.    
  35.   
  36. End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 15:20 , Processed in 0.423243 second(s), 77 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表