当前位置: 网学 > 编程文档 > VB > 正文

在VB里巧用集合

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
做处理如下

Public Function OutProcess()
  For iLoopCtrl = 1 To m_ColData.Count
I = m_ColData(iLoopCtrl)
    CurrentID = m_Array(I).ID
    CurrentName = m_Array(I).Name
    CurrentScore = m_Array(I).Score
    注释:对当前记录做相应处理
  Next
End Function

---- * 性 能 分 析
---- 对 于 集 合 来 讲, 随 着 记 录 个 数 的 增 长, 对 集 合 的 操 作 效 率 飞 快 下 降。 因 为, 集 合 按 下 标 查 找 一 记 录 时 首 先 从 集 合 的 头 一 条 记 录 开 始, 顺 序 向 下, 直 到 指 定 的 下 标 位 置。 因 此, 访 问m_ColData(99) 要 比 访 问m_ColData(1) 慢 的 很 多。 而 大 家 都 知 道 数 组 在 内 存 中 是 顺 序 存 放, 因 此, 访 问 某 条 记 录 的 效 率 与 下 标 大 小 无 关。 当 记 录 数 或 每 个 记 录 的 项 目 数 越 大, 效 率 的 提 高 越 明 显。( 大 家 可 以 自 己 写 一 些 测 试 程 序, 具 体 比 较 以 下 它 们 之 间 的 效 率 差 别, 会 感 到 非 常 惊 讶 的)

---- 2 . 当 记 录 有 唯 一 关 键 字, 并 经 常 以 这 个 关 键 字 做 查 询 时 可 以 使 用 以 下 方 法。

---- 定 义 用 于 保 存 数 据 的 结 构 和 结 构 数 组

Type tMyType
  Item_1 As String
注释:为关键字
  Item_2 As String
  Item_3 As String
End Type
Public m_Array() As tMyType
Public m_ColIndex As New Collection
注释:用于保存索引的集合
定义用于保存索引信息的类clsIndex如下
Public Item_Key As String
Public ID_OfArray As Integer
当接受到一条记录pData后插入过程如下
Public Function InsertData(pData As tMyType)
Dim myClass As New clsIndex
ID_OfArray = ID_OfArray + 1
m_Array(ID_OfArray).Item_1 = pData.Item_1
m_Array(ID_OfArray).Item_2 = pData.Item_2
m_Array(ID_OfArray).Item_3 = pData.Item_3
myClass.Item_Key = pData.Item_1
myClass.ID_OfArray = ID_OfArray
m_ColIndex.Add Item:=myClass, Key:=pData.Item_1
End Function
那么,当需要以给出的关键字(mKey)
         取得数据时,用以下方法实现
Current_Item1 = m_Array(myClass(mKey)
    .ID_OfArray).Item_1
Current_Item2 = m_Array(myClass(mKey)
    .ID_OfArray).Item_2
Current_Item3 = m_Array(myClass(mKey)
    .ID_OfArray).Item_3

  • 上一篇资讯: 如何建立文件关联
  • 下一篇资讯: 实现端口对端口的聊天
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号