100分,请问一个算法有关问题,实在解不出来了,鞠躬!(VB6实现)

100分,请教一个算法问题,实在解不出来了,鞠躬!(VB6实现)数组a:a(1) 1,2a(2) 1,100a(3) 1....

100分,请教一个算法问题,实在解不出来了,鞠躬!(VB6实现)
数组a:
a(1) = "1,2"
a(2) = "1,100"
a(3) = "1"
....
数组b:
b(1) = "21"
b(2) = "55"
b(3) = "97"

转化成
数组a:
a(1) = "1"
a(2) = "2"
a(3) = "100"
数组b:
b(1) = "21,55,97"
b(2) = "21"
b(3) = "55"

[解决办法]
LZ的意思可能是
数组a,按序排列好依次存入数组a
数组b,按序排列好,第一个元素替换成保存整个序列,后边的依次存入数组b


排序的算法有很多,LZ可自行选择,排序后的存放也很容易,LZ可以一步步来
[解决办法]
Option Explicit
'窗体上放一个 ListBox,属性 Sorted = True。可以设置为 Visible = False。

Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long

Private Const LB_FINDSTRINGEXACT = &H1A2 '在 ListBox 中精确查找

Dim a(1 To 3) As String, b(1 To 3) As String
Dim i As Integer, j As Integer, n As Integer

Private Sub Command1_Click()
Array_Split a

For i = 1 To 3
Debug.Print a(i)
Next i

a(1) = "1,2"
a(2) = "1,100"
a(3) = "1"
End Sub

Private Sub Command2_Click()
Array_Join b

For i = 1 To 3
Debug.Print b(i)
Next i

b(1) = "21"
b(2) = "55"
b(3) = "97"
End Sub

Private Sub Form_Load()
a(1) = "1,2"
a(2) = "1,100"
a(3) = "1"

b(1) = "21"
b(2) = "55"
b(3) = "97"
End Sub

Private Sub Array_Split(ByRef strArr() As String)
Dim strTmp() As String

List1.Clear
For i = LBound(strArr) To UBound(strArr)
strTmp = Split(strArr(i), ",")
For j = LBound(strTmp) To UBound(strTmp)
strTmp(j) = Format(Trim(strTmp(j)), "00000")
If -1 = SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, strTmp(j)) Then List1.AddItem strTmp(j)
Next j
Next i

n = LBound(strArr)
For i = 0 To List1.ListCount - 1
strArr(n + i) = CStr(Val(List1.List(i)))
If n + i = UBound(strArr) Then Exit For
Next i
End Sub


Private Sub Array_Join(ByRef strArr() As String)
Dim strTmp() As String

List1.Clear
For i = LBound(strArr) To UBound(strArr)
strArr(i) = Format(Trim(strArr(i)), "00000")
If -1 = SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, strArr(i)) Then List1.AddItem strArr(i)
Next i

n = LBound(strArr)
strArr(n) = ""
For i = 0 To List1.ListCount - 1
strArr(n) = strArr(n) & IIf(strArr(n) > "", ",", "") & CStr(Val(List1.List(i)))
If n + i < UBound(strArr) Then strArr(n + i + 1) = CStr(Val(List1.List(i)))
Next i
End Sub


[解决办法]
Private Sub Form_Load()
Dim a(3) As String
Dim b(3) As String
Dim i As Integer
a(0) = 1
a(1) = "1,2"
a(2) = "1,100"
a(3) = "1"
b(0) = "21,55,97"

b(1) = "21"
b(2) = "55"
b(3) = "97"
 For i = 1 To UBound(a)
a(i) = Replace(a(i), "1,", "")
Next
For i = UBound(a) To 1 Step -1
a(i) = a(i - 1)
Next
 For i = 1 To UBound(a)
 Debug.Print a(i)
Next
Debug.Print "-----------"
For i = 1 To UBound(b)
b(i) = Replace(b(i), "1,", "")
Next
For i = UBound(b) To 1 Step -1


b(i) = b(i - 1)
Next
 For i = 1 To UBound(b)
 Debug.Print b(i)
Next
End Sub

[解决办法]
数组a: 
a(1) = "1,2" 
a(2) = "1,100" 
a(3) = "1" 
将用空串置换掉得
a(1) = "2" 
a(2) = "100" 
a(3) = "1" 
a(1)赋给a(2),a(2)的原值赋给a(3),a(3)的原值赋给a(1)得
a(1) = "1" 
a(2) = "2" 
a(3) = "100" 
数组b:
b(0) = "21,55,97"
b(1) = "21" 
b(2) = "55" 
b(3) = "97"
轮换赋值得
b(1) = "21,55,97" 
b(2) = "21" 
b(3) = "55"
 



[解决办法]

探讨
LZ的意思可能是
数组a,按序排列好依次存入数组a
数组b,按序排列好,第一个元素替换成保存整个序列,后边的依次存入数组b

排序的算法有很多,LZ可自行选择,排序后的存放也很容易,LZ可以一步步来