完善这个程序增加“排序功能”

来源:百度知道 编辑:UC知道 时间:2024/06/07 21:23:40
下面的程序对text1窗口的号码(双色球)出现次数进行了统计,请高手帮忙再编一段来完善程序,
要求就是:
将text2窗口内统计后的号码按次数多少排序,并提取前6位号码在text3窗口显示(位数可在text4窗口
调整如7,8,9等等),不显示次数,只显示号码。

'设置Text1和Text2的MultiLine属性为True
Private Sub Command1_Click()
Dim a() As String, Num(1 To 33) As Integer
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
a(i) = Trim(a(i))
For j = 1 To Len(a(i)) Step 3
Num(Mid(a(i), j, 2)) = Num(Mid(a(i), j, 2)) + 1
Next
Next
For i = 1 To 33
Text2.Text = Text2.Text & i & vbTab & Num(i) & vbCrLf
Next
End Sub

在text1 窗口内的检验数据
02 07 09 10 11 16 20 22 25 28 31 32 33
03 05 06 08 12 13 15 17 21 24 26 27 31
01 02 03 06 12 14 15 17 18 23 27 28 33
05 06 12 16 17 19 21 23 25 27 28 29 32
03 04 05 06 14 17 19 20 25 27 28 31 32
04 11 12 14 16 18 20 24 26 28 29 30 32
06 07 10 13 19 20 21 22 23 24 25 27 29
04 05 15 17 18 19 20 22 25 27 28 32 33
04 05 13 15 17 19 22

'注:text3窗口的数据,已调成横向显示
Private Sub Command1_Click()
Dim a() As String, Num(1 To 33, 1) As Integer, i As Integer, j As Integer, k0 As Integer, k1 As Integer
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a) '统计
a(i) = Trim(a(i))
For j = 1 To Len(a(i)) Step 3
k0 = Val(Mid(a(i), j, 2))
Num(k0, 0) = k0
Num(k0, 1) = Num(k0, 1) + 1
Next
Next

For i = 1 To 33 '排序
For j = i To 33
If Num(j, 1) > Num(i, 1) Then
k0 = Num(i, 0)
k1 = Num(i, 1)
Num(i, 0) = Num(j, 0)
Num(i, 1) = Num(j, 1)
Num(j, 0) = k0
Num(j, 1) = k1
End If
Next
Next

Text2.Text = ""
For i = 1 To 33 'text2显示排序结果
Text2.Text = Text2.Tex