| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:代码简化
只看楼主 加入收藏
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
代码简化
程序代码:
这段代码可以简化,使速度加快吗?

xxx = rs.GetRows(-1, 1, Array("MRP_Cntrlr", "Req_Date", "Assy_Number", "Partcode", "Vendor_Name"))
        Set d0 = CreateObject("Scripting.Dictionary")
        Set d1 = CreateObject("Scripting.Dictionary")
        Set d2 = CreateObject("Scripting.Dictionary")
        Set d3 = CreateObject("Scripting.Dictionary")
        Set d4 = CreateObject("Scripting.Dictionary")
        For yy = 0 To UBound(xxx, 2)
            d0(xxx(0, yy)) = ""
            d1(xxx(1, yy)) = ""
            d2(xxx(2, yy)) = ""
            d3(xxx(3, yy)) = ""
            d4(xxx(4, yy)) = ""
        Next yy
        kk0 = d0.Keys
        kk1 = d1.Keys
        kk2 = d2.Keys
        kk3 = d3.Keys
        kk4 = d4.Keys

        For i = 0 To 4
            Combo1(i).Clear
            Combo1(i).AddItem "-All-"
        Next i

        For k0 = 0 To UBound(kk0)
            Combo1(0).AddItem kk0(k0)
        Next

        For k1 = 0 To UBound(kk1)
            Combo1(1).AddItem kk1(k1)
        Next

        For k2 = 0 To UBound(kk2)
            Combo1(2).AddItem kk2(k2)
        Next

        For k3 = 0 To UBound(kk3)
            Combo1(3).AddItem kk3(k3)
        Next

        For k4 = 0 To UBound(kk4)
            Combo1(4).AddItem IIf(IsNull(kk4(k4)), "", kk4(k4))
        Next


搜索更多相关主题的帖子: 代码 
2010-03-25 14:20
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
不太可能优化运行速度了。
最后只能优化代码结构,运行速度无法再上升。

Scripting.Dictionary
你程序里,这些集合是不是固定条目的,如果是,不要考虑使用这个对象,
而使用 结构 等。


授人于鱼,不如授人于渔
早已停用QQ了
2010-03-25 16:42
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 2楼 风吹过b
Combo1(1).AddItem 能用其他方法吗?是否只能用循环?
2010-03-26 08:41
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:1 
定一个变量,保存UBound(kk0)后的结果。
count=UBound(kk0)
 For k0 = 0 To count
            Combo1(0).AddItem kk0(k0)
Next
2010-03-26 23:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
你这个程序里,就是这个对象拖慢的速度
Scripting.Dictionary

如果有可能,你用 type 定义数据代替它吧.
使用TYPE定义数据结构的话,要求各个元素的结构基本相同.



授人于鱼,不如授人于渔
早已停用QQ了
2010-03-27 10:14
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 5楼 风吹过b
版主,可以指点下吗?我还不会用TYPE,谢谢
2010-03-29 11:07
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:19 
type 类型的名字
   内部标识符 as  类型
   .....
end type

dim d0 as 类型的名称

使用时

   d0.内部标识符="  "

内部数据类型,可以使用数组.可以嵌套 结构类型的,不能嵌套自己或循环嵌套自己.
数组可以用动态的,也可以静态的.
字符串类型在这里还可以使用定长字符串.

------------
如你 d0 只使用了 xxxx() 数组和 keys 这个值的话,
可以这样定义

'放在模块头
public type  dtype
  xxx() as string
  keys as string
end type

'使用的地方
dim d0 as dtype
redim d0.xxx(5,6)
d0.xxx(1,2)="sdfgb"
do.keys="6556"




授人于鱼,不如授人于渔
早已停用QQ了
2010-03-29 12:03
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 7楼 风吹过b
学习ing....感激ing...
2010-03-29 14:48
快速回复:代码简化
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041366 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved