乐筑天下

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

getxRecords方法问题

[复制链接]

5

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
30
发表于 2005-1-3 08:13:04 | 显示全部楼层 |阅读模式
你好,沼泽,
我一直在玩VBA(快门...),这不是我的专业领域,我试图回答一位法国绅士的问题,他正试图在字典中存储和检索信息。
下面是我尝试获取和检索数据的尝试。
我遇到的问题是getxRecords方法
  1. objXRecordReturn.GetXRecordData XRecordDataTypeReturn, XRecordDataReturn

它似乎没有检索数据类型或数据并返回空白。
我使用lisp检查过,数据就在那里。
你们中有人有一些模块吗?或者你知道为什么我没有得到正确的数据吗?
Peter Jamtgaard
  1. Option Explicit
  2. Public Sub Test()
  3.     Dim arrMyData(3) As Variant
  4.     arrMyData(0) = "hello"
  5.     arrMyData(1) = "There"
  6.     arrMyData(2) = "jean"
  7.     CreateDictionary "test7"
  8.     CreateXRecords "test7", arrMyData
  9.     ReadXRecords "test7"
  10. End Sub
  11. Private Sub CreateDictionary(strDictionaryName As String)
  12.     Dim objDictionary As AcadDictionary
  13.     On Error Resume Next
  14.     Set objDictionary = ThisDrawing.Dictionaries.Add(strDictionaryName)
  15.     objDictionary.Delete
  16.     Set objDictionary = ThisDrawing.Dictionaries.Add(strDictionaryName)
  17. End Sub
  18. Private Sub CreateXRecords(strDictionaryName As String, arrMyData() As Variant)
  19.     Dim intIndex As Integer
  20.     Dim objDictionary As AcadDictionary
  21.     Dim objXRecord As AcadXRecord
  22.     Dim XRecordData(0) As Variant
  23.     Dim XRecordDataType(0) As Integer
  24.     Set objDictionary = ThisDrawing.Dictionaries.Item(strDictionaryName)
  25.     MsgBox "Storing XRecord Information: "
  26.     For intIndex = 0 To UBound(arrMyData) - 1
  27.         Set objXRecord = objDictionary.AddXRecord(CStr(intIndex) & "A")
  28.         XRecordDataType(0) = 1
  29.         XRecordData(0) = arrMyData(intIndex)
  30.         objXRecord.SetXRecordData XRecordDataType, XRecordData
  31.     Next intIndex
  32. End Sub
  33. Private Sub ReadXRecords(strDictionaryName As String)
  34.     MsgBox "Retieving XRecord Information: "
  35.     Dim intIndex As Integer
  36.     Dim arrMyDataReturn(3) As Variant
  37.     Dim objDictionary As AcadDictionary
  38.     Dim objXRecordReturn As AcadXRecord
  39.     Dim XRecordDataReturn(0) As Variant
  40.     Dim XRecordDataTypeReturn(0) As Integer
  41.     Set objDictionary = ThisDrawing.Dictionaries.Item(strDictionaryName)
  42.     For intIndex = 0 To objDictionary.Count - 1
  43.         Set objXRecordReturn = objDictionary.Item(CStr(intIndex) & "A")
  44.         MsgBox objDictionary.Name & " Item: " & objXRecordReturn.Name
  45.         objXRecordReturn.GetXRecordData XRecordDataTypeReturn, XRecordDataReturn
  46.         MsgBox "XRecordDataTypeReturn: " & XRecordDataTypeReturn(0)
  47.         arrMyDataReturn(intIndex) = XRecordDataReturn(0)
  48.         MsgBox "XRecordDataReturn: " & XRecordDataReturn(0)
  49.     Next intIndex
  50.     MsgBox arrMyDataReturn(0) & " " & arrMyDataReturn(1) & " " & arrMyDataReturn(2)
  51. End Sub

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

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

使用道具 举报

0

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
6
发表于 2005-1-3 20:06:50 | 显示全部楼层
嗨,彼得...
似乎是唯一的关键问题(意思是拒绝完成...没有误差)取决于“载体”的尺寸。
在ReadXRecords中,两个接收器都必须是纯变量(不能以数组的形式划分维度;它们必须是灵活的)。从两者中移除(0 ),您的代码运行良好。


  1. ' use this instead
  2.     Dim XRecordDataReturn As Variant
  3.     Dim XRecordDataTypeReturn As Variant
  4.     ...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-16 17:46 , Processed in 1.087324 second(s), 57 queries .

© 2020-2025 乐筑天下

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