你好,沼泽,
我一直在玩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
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |