getxRecords方法问题
你好,沼泽,我一直在玩VBA(快门...),这不是我的专业领域,我试图回答一位法国绅士的问题,他正试图在字典中存储和检索信息。
下面是我尝试获取和检索数据的尝试。
我遇到的问题是getxRecords方法
objXRecordReturn.GetXRecordData XRecordDataTypeReturn, XRecordDataReturn
它似乎没有检索数据类型或数据并返回空白。
我使用lisp检查过,数据就在那里。
你们中有人有一些模块吗?或者你知道为什么我没有得到正确的数据吗?
Peter Jamtgaard
Option Explicit
Public Sub Test()
Dim arrMyData(3) As Variant
arrMyData(0) = "hello"
arrMyData(1) = "There"
arrMyData(2) = "jean"
CreateDictionary "test7"
CreateXRecords "test7", arrMyData
ReadXRecords "test7"
End Sub
Private Sub CreateDictionary(strDictionaryName As String)
Dim objDictionary As AcadDictionary
On Error Resume Next
Set objDictionary = ThisDrawing.Dictionaries.Add(strDictionaryName)
objDictionary.Delete
Set objDictionary = ThisDrawing.Dictionaries.Add(strDictionaryName)
End Sub
Private Sub CreateXRecords(strDictionaryName As String, arrMyData() As Variant)
Dim intIndex As Integer
Dim objDictionary As AcadDictionary
Dim objXRecord As AcadXRecord
Dim XRecordData(0) As Variant
Dim XRecordDataType(0) As Integer
Set objDictionary = ThisDrawing.Dictionaries.Item(strDictionaryName)
MsgBox "Storing XRecord Information: "
For intIndex = 0 To UBound(arrMyData) - 1
Set objXRecord = objDictionary.AddXRecord(CStr(intIndex) & "A")
XRecordDataType(0) = 1
XRecordData(0) = arrMyData(intIndex)
objXRecord.SetXRecordData XRecordDataType, XRecordData
Next intIndex
End Sub
Private Sub ReadXRecords(strDictionaryName As String)
MsgBox "Retieving XRecord Information: "
Dim intIndex As Integer
Dim arrMyDataReturn(3) As Variant
Dim objDictionary As AcadDictionary
Dim objXRecordReturn As AcadXRecord
Dim XRecordDataReturn(0) As Variant
Dim XRecordDataTypeReturn(0) As Integer
Set objDictionary = ThisDrawing.Dictionaries.Item(strDictionaryName)
For intIndex = 0 To objDictionary.Count - 1
Set objXRecordReturn = objDictionary.Item(CStr(intIndex) & "A")
MsgBox objDictionary.Name & " Item: " & objXRecordReturn.Name
objXRecordReturn.GetXRecordData XRecordDataTypeReturn, XRecordDataReturn
MsgBox "XRecordDataTypeReturn: " & XRecordDataTypeReturn(0)
arrMyDataReturn(intIndex) = XRecordDataReturn(0)
MsgBox "XRecordDataReturn: " & XRecordDataReturn(0)
Next intIndex
MsgBox arrMyDataReturn(0) & " " & arrMyDataReturn(1) & " " & arrMyDataReturn(2)
End Sub
**** Hidden Message ***** 嗨,彼得...
似乎是唯一的关键问题(意思是拒绝完成...没有误差)取决于“载体”的尺寸。
在ReadXRecords中,两个接收器都必须是纯变量(不能以数组的形式划分维度;它们必须是灵活的)。从两者中移除(0 ),您的代码运行良好。
' use this instead
Dim XRecordDataReturn As Variant
Dim XRecordDataTypeReturn As Variant
...
页:
[1]