如何遍历一个未知结构体内部的元素列表及个数
如
Public Type tE_aa
s01 As String * 1
s02 As String * 8
s10 As String * 6
s16 As String * 2
s18 As String * 5
s23 As String * 9
s32 As String * 10
End Type 如何得到这个结构体的元素总数及元素列表({"s01","s02 ","s10 ",...,"s32 "}这样的)?
如
Public Type tE_aa
s01 As String * 1
s02 As String * 8
s10 As String * 6
s16 As String * 2
s18 As String * 5
s23 As String * 9
s32 As String * 10
End Type 如何得到这个结构体的元素总数及元素列表({"s01","s02 ","s10 ",...,"s32 "}这样的)?
在vc中有人可以实现http://topic.csdn.net/t/20061205/10/5207152.html
但是vb中不知道如何处理
'先引用 C:\WINDOWS\system32\tlbinf32.dll
'在窗体中建立一个Text1的文本框,建立一个List1的列表框
'复制以下代码至窗口中
Dim typeApp As New TLI.TLIApplication
Dim curInfo As InterfaceInfoPrivate Sub Form_Load()
Set curInfo = typeApp.InterfaceInfoFromObject(Text1)
For i = 1 To curInfo.Members.Count
List1.AddItem curInfo.Members(i).Name
Next
End Sub
Dim curInfo As InterfaceInfo
Private Sub Form_Load()
Set curInfo = typeApp.InterfaceInfoFromObject(Text1)
For i = 1 To curInfo.Members.Count
If curInfo.Members(i).MemberId > 0 Then
If curInfo.Members(i).MemberId <> curInfo.Members(i - 1).MemberId Then List1.AddItem curInfo.Members(i).Name
End If
Next
End Sub
变通的方法是把元素声明成Long型,用来保存字符串的指针。
固定长度的结构元素就很容易遍历了。
lPtr As Long
lLen As Long
End TypePublic Type tE_aa
s01 As tE_dd
s02 As tE_dd
s10 As tE_dd
s16 As tE_dd
s18 As tE_dd
s23 As tE_dd
s32 As tE_dd
End Type