数组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"
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"
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
数组b,按序排列好,第一个元素替换成保存整个序列,后边的依次存入数组b
排序的算法有很多,LZ可自行选择,排序后的存放也很容易,LZ可以一步步来
'窗体上放一个 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 LongPrivate 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 IntegerPrivate Sub Command1_Click()
Array_Split aFor i = 1 To 3
Debug.Print a(i)
Next ia(1) = "1,2"
a(2) = "1,100"
a(3) = "1"
End SubPrivate Sub Command2_Click()
Array_Join bFor i = 1 To 3
Debug.Print b(i)
Next ib(1) = "21"
b(2) = "55"
b(3) = "97"
End SubPrivate Sub Form_Load()
a(1) = "1,2"
a(2) = "1,100"
a(3) = "1"b(1) = "21"
b(2) = "55"
b(3) = "97"
End SubPrivate Sub Array_Split(ByRef strArr() As String)
Dim strTmp() As StringList1.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 in = 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 StringList1.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 in = 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
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(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中不重复的数值,并按升序排列。