0

I have a two dimensional array. One dimension is date, other dimension is name.

And I am trying to sort these array values by the latest date.

I looked at couple of examples and I came up with this.

But dates are not sorted properly.

    DataMax = uBound(sDateArray)-1

For i = 0 to DataMax
    For j = i + 1 to DataMax 
        If DateDiff("s", DataArray(j, 0), DataArray(i, 0)) > 0 Then
            TemporalVariable    =   sDateArray(i, 0)
            sDateArray(i, 0)        =   sDateArray(j, 0)
            sDateArray(j, 0)        =   TemporalVariable
        End If
    Next 
Next


    For i=0 to DataMax
      Response.write (sDateArray(i) & "<BR>") 
    next 
4

3 に答える 3

0

この記事では、従来の ASP での並べ替えを示しています: http://www.4guysfromrolla.com/webtech/062701-1.shtml

要約すると、これはソート部分です (文字列比較を日付比較に置き換えるだけです):

Sub SortArray(aTempArray) 
  Dim iTemp, jTemp, strTemp

  For iTemp = 0 To UBound(aTempArray)  
    For jTemp = 0 To iTemp  

      If strComp(aTempArray(jTemp), aTempArray(iTemp)) > 0 Then
        'Swap the array positions
        strTemp = aTempArray(jTemp) 
        aTempArray(jTemp) = aTempArray(iTemp) 
        aTempArray(iTemp) = strTemp 
      End If 

    Next 
  Next 
End Sub
于 2012-06-04T15:49:33.777 に答える
0

私は実際にオンラインの例を1つ見つけました。関数ではなく、サブですが、正常に動作します。他の提案はいつでも歓迎します。

Sub DataSorter(arrArray)
    Dim row, j, StartingKeyValue, StartingOtherValue, _
        NewStartingKey, NewStartingOther, _
        swap_pos

    For row = 0 To UBound(arrArray)-1
        StartingKeyValue = arrArray(row, 0)
        StartingOtherValue = arrArray(row, 0)
        NewStartingKey = arrArray(row, 0)
        NewStartingOther = arrArray(row, 0)
        swap_pos = row
        For j = row + 1 to UBound(arrArray)
            If arrArray(j, 0) > NewStartingKey Then
                swap_pos = j
                NewStartingKey = arrArray(j, 0)
                NewStartingOther = arrArray(j, 0)
            End If
        Next    
        If swap_pos <> row Then
            arrArray (swap_pos, 0) = StartingKeyValue
            arrArray (swap_pos, 0) = StartingOtherValue            
            arrArray (row, 0) = NewStartingKey
            arrArray (row, 0) = NewStartingOther     
        End If  
    Next
End Sub
于 2012-06-04T19:14:25.027 に答える
-1

そのループは正しいソート アルゴリズムではありません。

http://en.wikipedia.org/wiki/Sorting_algorithm

于 2012-06-04T15:11:57.333 に答える