日期:2014-05-17  浏览次数:20927 次

求段asp代码(急用)
就是asp的数组排序

两个数组,数组a,数组b

把数组b按照a的条件(例如数组a、b中都有id,那么数组b按照数组a的id进行排序)

------解决方案--------------------
'============================================================================================
' 功能:数组操作类[数字型]
' 版本:Version 1.0
' 更新:2006-6-30
' -------------------------------------------------------
' 方法:
' -------------------------------------------------------
'Set cArr = New ArrClass
' cArr.ArrStr = "17,23,55,99,37 " '输入参数 [必须]
' cArr.Length '取元素数量
' cArr.MaxNum '取最大值
' cArr.MinNum '取最小值
' cArr.ByDesc '排倒序
' cArr.ByAsc '排顺序
' cArr.AddItem( "15 ") '在数组未尾添加元素
' cArr.AddItemBefore( "11 ") '在数组前端添加元素
' cArr.AddItemI(4, "34 ") '在索引位置添加元素
' cArr.DelItem( "99 ") '删除数组中的某个元素
' cArr.DelItemI(6) '删除索引位置的元素
'Set cArr = Nothing
' -------------------------------------------------------
' 备注:排序操作暂时仅支持数元素值为数字型的数组,仅支持一维
'============================================================================================
Class ArrClass

'=======================================//声明变量
Private tMin '最小值
Private tMax '最大值
Private tStr '数组串
Private tSortStr '排序串,当对同一数组串进行操作时避免多次排序操作
Private tLength '元素个数

'=======================================//类初始化
Private Sub Class_Initialize
tMin = 0
tMax = 0
tStr = "0 "
tLength = 0
tSortStr = " "
End Sub

'=======================================//获得最小值
Property Get MinNum
If tMin = 0 Then
Dim sStr
If tSortStr= " " Then
sStr = Split(cSort, ", ")
Else
sStr = Split(tSortStr, ", ")
End If
tMin = sStr(0)
End If
MinNum = tMin
End Property

'=======================================//获得最大值
Property Get MaxNum
If tMax = 0 Then
Dim sStr
If tSortStr= " " Then
sStr = Split(cSort, ", ")
Else
sStr = Split(tSortStr, ", ")
End If
tMax = sStr(Ubound(sStr))
End If
MaxNum = tMax
End Property

'=======================================//取元素数量
Property Get Length
If tStr= " " Or tStr=0 Then
Length = 0
Else
tLength = Ubound(Split(tStr, ", "))+1
Length = tLength
End If
End Property

'=======================================//将数组串赋给属性
Property Let ArrStr(str)
If str = " " Then
tStr = "0 "
Else
tStr = str
End If
End Property

'=======================================//排倒序
Public Function ByDesc
Dim Arr,i
Redim Arr(Ubound(Split(tStr, ", ")))
Dim tmp,j
For i=0 to Ubound(Arr)
Arr(i)=CDBL(Split(tStr, ", ")(i))
Next
For I= 0 to Ubound(Arr)
For j=i+1 to Ubound(Arr)
If Arr(i) <Arr(j) Then
tmp = Arr(i)
Arr(i) = Arr(j)
Arr(j) = tmp
End If
Next
Next
tSortStr=Join(Arr, ", ")