在这网站http://www.qqgb.com/Program/VB/VBJQ/Program_177745.html阐述了二维数组排序一个例子.
其数据源
如:aa(0 to 2,0 to 3) 10 5 13 24
3 55 43 2
30 51 113 21 请问各位,aa(3,3)排序组合应该有几种组合.
例如:
按第1列排序结果
3 55 43 2
10 5 13 24
30 51 113 21
按第2列排序结果
10 5 13 24
30 51 113 21
3 55 43 2 通过以上两种两组合分析,多维数组排也就是也就是多个一维数组排序的组合对吗??
其数据源
如:aa(0 to 2,0 to 3) 10 5 13 24
3 55 43 2
30 51 113 21 请问各位,aa(3,3)排序组合应该有几种组合.
例如:
按第1列排序结果
3 55 43 2
10 5 13 24
30 51 113 21
按第2列排序结果
10 5 13 24
30 51 113 21
3 55 43 2 通过以上两种两组合分析,多维数组排也就是也就是多个一维数组排序的组合对吗??
Function CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
'For ii = 0 To UBound(RstFiledsName)
With rst
.Fields.Append RstFiledsName(0), adChar, 20, adFldIsNullable
.Fields.Append RstFiledsName(1), adBSTR, , adFldMayBeNull
End With
'Next ii
Set CreatSelectionHeading = rst
End FunctionSub lls()
Dim rst As ADODB.Recordset
nn = Array("a1", "a2")
Set rst = CreatSelectionHeading(nn)
With rst
.Open
.AddNew
.Fields(0) = "aaa1"
.Sort = "a1 asc"
End With
End Sub
Sub ls()
Dim mArray(5) As Variant
mArray(0) = Array(111, 2, "dfa")
mArray(1) = Array(2, 2, "aaaa")
mArray(2) = Array(44, 4, "pppp")
mArray(3) = Array(44, 3, "ooo")
mArray(4) = Array(1, 5, "ee")
mArray(5) = Array(302, 5, "66") Dim rst As ADODB.Recordset
nn = Array("x", "y", "tempText")
Set rst = CreatSelectionHeading(nn)
With rst
.Open
''
For jj = 0 To UBound(mArray)
.AddNew
.Fields(0) = mArray(jj)(0)
.Fields(1) = mArray(jj)(1)
.Fields(2) = mArray(jj)(2)
Next jj
''
.Sort = ("x Asc ,y Asc")
.MoveFirst
For ii = 0 To .RecordCount - 1
Debug.Print .Fields(0), .Fields(1), .Fields(2)
.MoveNext
Next ii
End With
Set rst = Nothing
End Sub
Function CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
'For ii = 0 To UBound(RstFiledsName)
With rst
.Fields.Append RstFiledsName(0), adDouble ', 20, adFldIsNullable
.Fields.Append RstFiledsName(1), adDouble ', , adFldMayBeNull
.Fields.Append RstFiledsName(2), adBSTR, , adFldMayBeNull End With
'Next ii
Set CreatSelectionHeading = rst
End Function
Sub ls()
Dim ConnectCad As New MyAcadEntity
Dim sSet As AcadSelectionSet
Dim Pt1, Pt2
With ConnectCad
Pt1 = .objModelDocument.Utility.GetPoint(, "Select First Point:")
Pt2 = .objModelDocument.Utility.GetCorner(Pt1, "Select Corner Point:")
Set sSet = .SelectConerSelectionSet(Pt1, Pt2)
End With Dim rst As ADODB.Recordset
Dim objText As AcadText
nn = Array("x", "y", "tempText")
Set rst = CreatSelectionHeading1(nn)
With rst
.Open
For ii = 0 To sSet.Count - 1 ''
If sSet.Item(ii).ObjectName = "AcDbText" Then
Set objText = sSet.Item(ii)
.AddNew
With objText
rst.Fields(0) = .TextString
rst.Fields(1) = .InsertionPoint(1)
rst.Fields(2) = .Handle
End With
End If
Next ii
''
.Sort = ("y Desc")
.MoveFirst
For ii = 0 To .RecordCount - 1
'Debug.Print .Fields(0), .Fields(1), .Fields(2)
Set objText = ConnectCad.objModelDocument.HandleToObject(.Fields(2))
objText.TextString = "4-" & 10 + ii
.MoveNext
Next ii
End With
Set rst = Nothing
End Sub
Function CreatSelectionHeading1(RstFiledsName As Variant) As ADODB.Recordset
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
'For ii = 0 To UBound(RstFiledsName)
With rst
.Fields.Append RstFiledsName(0), adBSTR ', 20, adFldIsNullable
.Fields.Append RstFiledsName(1), adDouble ', , adFldMayBeNull
.Fields.Append RstFiledsName(2), adBSTR, , adFldMayBeNull End With
'Next ii
Set CreatSelectionHeading1 = rst
End Function