Vba VB6:如何对数字数组进行排序,但在排序后匹配相应的字符串(文本)值

Vba VB6:如何对数字数组进行排序,但在排序后匹配相应的字符串(文本)值,vba,vb6,Vba,Vb6,我的一段代码有点问题。我必须使用VB6完成作业别问为什么,我知道它很旧,不会是我的第一选择。我需要整理一个文本文件排行榜,我有两个文件,一个是玩家的分数,另一个是玩家的名字(每个文本文件的每一行都对应着名字和分数值)。我可以对分数进行排序并将其显示在列表框中,但我无法思考如何在排序后将字符串/文本值与适当的分数进行匹配?如果有人能帮忙,我将不胜感激 我使用的代码的一小部分对整型分数值进行排序,但现在我不知道如何将字符串/文本播放器名称添加到相应的排序分数中: num = UBound(strPr

我的一段代码有点问题。我必须使用VB6完成作业别问为什么,我知道它很旧,不会是我的第一选择。我需要整理一个文本文件排行榜,我有两个文件,一个是玩家的分数,另一个是玩家的名字(每个文本文件的每一行都对应着名字和分数值)。我可以对分数进行排序并将其显示在列表框中,但我无法思考如何在排序后将字符串/文本值与适当的分数进行匹配?如果有人能帮忙,我将不胜感激

我使用的代码的一小部分对整型分数值进行排序,但现在我不知道如何将字符串/文本播放器名称添加到相应的排序分数中:

num = UBound(strPreviousScores)

For i = 0 To num
    SortedScores(i) = Val(strUnsortedScores(i))
Next i


For i = 0 To num
    For j = i + 1 To num
        If Sortedscores(i) < SortedScores(j) Then
            temp = SortedScores(i)
            SortedScores(i) = SortedScores(j)
            SortedScores(j) = temp
        End If
    Next j
Next i
'''''
intCounter = 0
For k = 0 To 4
    lstScores.AddItem SortedScores(intCounter)
    intCounter = intCounter + 1
Next
'''''
num=UBound(strPreviousScores)
对于i=0到num
分类得分(i)=Val(分类得分(i))
接下来我
对于i=0到num
对于j=i+1到num
如果Sortedscores(i)
多谢各位


Jack

由@Comintern建议的一个选项是一个包含两个成员的UDT数组

保留现有数组的一个选项是添加索引数组。创建一个整数数组,该数组的元素数与当前数组的元素数相同,并“自行填充”它:每个条目都有一个作为其值的索引值:Idx(1)=1,Idx(2)=2等

然后,当您对分数进行排序时,您可以通过索引数组访问该数组,[如中所示,分数(Idx(x))],并交换索引值,而不是分数值。完成后,Idx(1)具有最低分数值的索引值。同样的索引也可以用来访问Players数组

这样做比解释容易。谷歌“索引排序”为例

可能代码的一部分,来自您的示例:

 If Scores(Idx(i)) < Scores(Idx(j)) Then
    temp = Idx(i)
    Idx(i) = Idx(j)
    Idx(j) = temp
 End If
如果得分(Idx(i))<得分(Idx(j)),则
温度=Idx(i)
Idx(i)=Idx(j)
Idx(j)=温度
如果结束

在排序分数数组的同时重新排序其他数组中的元素如果我理解您的操作正确,听起来您需要一个用户
键入
,与
Player
Score
成员一起使用。