数据排序求教,谢谢!!!有a,b,c,d,e五个文件a里有数据:(4)
 kk 1111
 kk 1111
 kk 1111
 kk 1111
b里有数据:(3)
 ll 2222
 ll 2222
 ll 2222
c里有数据:(4) 
 oo 3333
 oo 3333
 oo 3333
 oo 3333
d里有数据:(5)
 ww 3333
 ww 3333
 ww 3333
 ww 3333
 ww 3333
e里有数据:(6)
 tt 1111
 tt 1111
 tt 1111
 tt 1111
 tt 1111
 tt 1111
我向统计后得出以下的数据:
 tt 6
 ww 5
 kk 4
 oo 4
 ll 3
求教该如何写出这段代码,谢谢!!!(能否用一个二位数组)

解决方案 »

  1.   


    Option Explicit
    Private Type spf
      Indexf As Long
      sl As Long
    End TypePrivate Sub Command1_Click()
      Dim px(1 To 5, 1 To 2) As String, t As String
      Dim i As Long, j As Long, pxi(1 To 5) As spf
    '这里的文件名路径自己改下
      Open "e:\a" For Input As #1
      Open "e:\b" For Input As #2
      Open "e:\c" For Input As #3
      Open "e:\d" For Input As #4
      Open "e:\e" For Input As #5
        
      For i = 1 To 5
        t = Input(LOF(i), i)
        px(i, 1) = Left(t, 2)
        pxi(i).Indexf = i
        pxi(i).sl = (Len(t) - Len(Replace(t, vbCrLf, ""))) / 2 + 1
        px(i, 2) = pxi(i).sl
      Next
      
      For i = 1 To 4
        For j = i + 1 To 5
          If pxi(i).sl < pxi(j).sl Then
            pxi(i).sl = pxi(i).sl Xor pxi(j).sl
            pxi(j).sl = pxi(i).sl Xor pxi(j).sl
            pxi(i).sl = pxi(i).sl Xor pxi(j).sl
            pxi(i).Indexf = pxi(i).Indexf Xor pxi(j).Indexf
            pxi(j).Indexf = pxi(i).Indexf Xor pxi(j).Indexf
            pxi(i).Indexf = pxi(i).Indexf Xor pxi(j).Indexf
          End If
        Next
      Next
      
      For i = 1 To 5
        Print px(pxi(i).Indexf, 1), px(pxi(i).Indexf, 2)
      Next
      
      Close #1
      Close #2
      Close #3
      Close #4
      Close #5
    End Sub