我先将字符串转化为26进制的数字,再化成10进制,然后比较大小。下面是aru,kuh,amo的排序代码。
Private Type mine
a As String
b As String
c As String
End TypePrivate Sub Command1_Click()
Dim state As Integer
Dim abc(3) As mine
Dim n(3), na(3), nb(3), nc(3) As Single
state = 0
abc(1).a = "a"
abc(1).b = "r"
abc(1).c = "u"
abc(2).a = "k"
abc(2).b = "u"
abc(2).c = "h"
abc(3).a = "a"
abc(3).b = "m"
abc(3).c = "o"
For z = 1 To 3
Select Case abc(z).a
Case "a"
na(z) = 1
Case "b"
na(z) = 2
Case "c"
na(z) = 3
Case "d"
na(z) = 4
Case "e"
na(z) = 5
Case "f"
na(z) = 6
Case "g"
na(z) = 7
Case "h"
na(z) = 8
Case "i"
na(z) = 9
Case "j"
na(z) = 10
Case "k"
na(z) = 11
Case "l"
na(z) = 12
Case "m"
na(z) = 13
Case "na"
na(z) = 14
Case "o"
na(z) = 15
Case "p"
na(z) = 16
Case "q"
na(z) = 17
Case "r"
na(z) = 18
Case "s"
na(z) = 19
Case "t"
na(z) = 20
Case "u"
na(z) = 21
Case "v"
na(z) = 22
Case "w"
na(z) = 23
Case "x"
na(z) = 24
Case "y"
na(z) = 25
Case "z"
na(z) = 26
End Select
Select Case abc(z).b
Case "a"
nb(z) = 1
Case "b"
nb(z) = 2
Case "c"
nb(z) = 3
Case "d"
nb(z) = 4
Case "e"
nb(z) = 5
Case "f"
nb(z) = 6
Case "g"
nb(z) = 7
Case "h"
nb(z) = 8
Case "i"
nb(z) = 9
Case "j"
nb(z) = 10
Case "k"
nb(z) = 11
Case "l"
nb(z) = 12
Case "m"
nb(z) = 13
Case "nb"
nb(z) = 14
Case "o"
nb(z) = 15
Case "p"
nb(z) = 16
Case "q"
nb(z) = 17
Case "r"
nb(z) = 18
Case "s"
nb(z) = 19
Case "t"
nb(z) = 20
Case "u"
nb(z) = 21
Case "v"
nb(z) = 22
Case "w"
nb(z) = 23
Case "x"
nb(z) = 24
Case "y"
nb(z) = 25
Case "z"
nb(z) = 26
End Select
Select Case abc(z).c
Case "a"
nc(z) = 1
Case "b"
nc(z) = 2
Case "c"
nc(z) = 3
Case "d"
nc(z) = 4
Case "e"
nc(z) = 5
Case "f"
nc(z) = 6
Case "g"
nc(z) = 7
Case "h"
nc(z) = 8
Case "i"
nc(z) = 9
Case "j"
nc(z) = 10
Case "k"
nc(z) = 11
Case "l"
nc(z) = 12
Case "m"
nc(z) = 13
Case "nc"
nc(z) = 14
Case "o"
nc(z) = 15
Case "p"
nc(z) = 16
Case "q"
nc(z) = 17
Case "r"
nc(z) = 18
Case "s"
nc(z) = 19
Case "t"
nc(z) = 20
Case "u"
nc(z) = 21
Case "v"
nc(z) = 22
Case "w"
nc(z) = 23
Case "x"
nc(z) = 24
Case "y"
nc(z) = 25
Case "z"
nc(z) = 26
End Select
n(z) = na(z) + nb(z) / 26 + nc(z) / 16 ^ 2
Next z
10 For z = 1 To 3
If n(z) <= n(1) And n(z) <= n(2) And n(z) <= n(3) And n(z) <> 1E+22 Then
n(z) = 1E+22
Form1.Print abc(z).a; abc(z).b; abc(z).c
state = state + 1
End If
Next z
If state <> 3 Then GoTo 10
End Sub
Private Type mine
a As String
b As String
c As String
End TypePrivate Sub Command1_Click()
Dim state As Integer
Dim abc(3) As mine
Dim n(3), na(3), nb(3), nc(3) As Single
state = 0
abc(1).a = "a"
abc(1).b = "r"
abc(1).c = "u"
abc(2).a = "k"
abc(2).b = "u"
abc(2).c = "h"
abc(3).a = "a"
abc(3).b = "m"
abc(3).c = "o"
For z = 1 To 3
Select Case abc(z).a
Case "a"
na(z) = 1
Case "b"
na(z) = 2
Case "c"
na(z) = 3
Case "d"
na(z) = 4
Case "e"
na(z) = 5
Case "f"
na(z) = 6
Case "g"
na(z) = 7
Case "h"
na(z) = 8
Case "i"
na(z) = 9
Case "j"
na(z) = 10
Case "k"
na(z) = 11
Case "l"
na(z) = 12
Case "m"
na(z) = 13
Case "na"
na(z) = 14
Case "o"
na(z) = 15
Case "p"
na(z) = 16
Case "q"
na(z) = 17
Case "r"
na(z) = 18
Case "s"
na(z) = 19
Case "t"
na(z) = 20
Case "u"
na(z) = 21
Case "v"
na(z) = 22
Case "w"
na(z) = 23
Case "x"
na(z) = 24
Case "y"
na(z) = 25
Case "z"
na(z) = 26
End Select
Select Case abc(z).b
Case "a"
nb(z) = 1
Case "b"
nb(z) = 2
Case "c"
nb(z) = 3
Case "d"
nb(z) = 4
Case "e"
nb(z) = 5
Case "f"
nb(z) = 6
Case "g"
nb(z) = 7
Case "h"
nb(z) = 8
Case "i"
nb(z) = 9
Case "j"
nb(z) = 10
Case "k"
nb(z) = 11
Case "l"
nb(z) = 12
Case "m"
nb(z) = 13
Case "nb"
nb(z) = 14
Case "o"
nb(z) = 15
Case "p"
nb(z) = 16
Case "q"
nb(z) = 17
Case "r"
nb(z) = 18
Case "s"
nb(z) = 19
Case "t"
nb(z) = 20
Case "u"
nb(z) = 21
Case "v"
nb(z) = 22
Case "w"
nb(z) = 23
Case "x"
nb(z) = 24
Case "y"
nb(z) = 25
Case "z"
nb(z) = 26
End Select
Select Case abc(z).c
Case "a"
nc(z) = 1
Case "b"
nc(z) = 2
Case "c"
nc(z) = 3
Case "d"
nc(z) = 4
Case "e"
nc(z) = 5
Case "f"
nc(z) = 6
Case "g"
nc(z) = 7
Case "h"
nc(z) = 8
Case "i"
nc(z) = 9
Case "j"
nc(z) = 10
Case "k"
nc(z) = 11
Case "l"
nc(z) = 12
Case "m"
nc(z) = 13
Case "nc"
nc(z) = 14
Case "o"
nc(z) = 15
Case "p"
nc(z) = 16
Case "q"
nc(z) = 17
Case "r"
nc(z) = 18
Case "s"
nc(z) = 19
Case "t"
nc(z) = 20
Case "u"
nc(z) = 21
Case "v"
nc(z) = 22
Case "w"
nc(z) = 23
Case "x"
nc(z) = 24
Case "y"
nc(z) = 25
Case "z"
nc(z) = 26
End Select
n(z) = na(z) + nb(z) / 26 + nc(z) / 16 ^ 2
Next z
10 For z = 1 To 3
If n(z) <= n(1) And n(z) <= n(2) And n(z) <= n(3) And n(z) <> 1E+22 Then
n(z) = 1E+22
Form1.Print abc(z).a; abc(z).b; abc(z).c
state = state + 1
End If
Next z
If state <> 3 Then GoTo 10
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货