Private Sub SortVariantMatrixRowsSample()
'See also:
' SortVariantMatrixRows2ndSample Subroutine
' SortVariantMatrixRows Function
Const NumSamples = 4096
Const fShow = False
Dim avarOrig() As Variant
DirToVariantVector avarOrig, CombinePathAndFile(GetWindowsDirectory, "*.*"), Null, False, False, False, False
'' Create a variant matrix containing some of the file names.
Dim avarMatrix() As Variant
ReDim avarMatrix(0 To 2, 0 To UBound(avarOrig))
Dim avarKeys() As Variant
ReDim avarKeys(0 To 2)
Dim lngCurFIle As Long
For lngCurFIle = 1 To UBound(avarMatrix, 2)
avarMatrix(1, lngCurFIle) = RandomIntegerWithinRange(1, UBound(avarMatrix, 2))
avarMatrix(2, lngCurFIle) = avarOrig(lngCurFIle)
Next lngCurFIle
ReDim Preserve avarMatrix(LBound(avarMatrix, 1) To UBound(avarMatrix, 1), LBound(avarMatrix, 2) To Min2Real(NumSamples, UBound(avarMatrix, 2)))
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
avarKeys(1) = 1
avarKeys(2) = 2
Debug.Print "SortVariantMatrix (Rnd) to (1,2):"
DebugTimerOn
SortVariantMatrixRows avarMatrix, Null, avarKeys, False
Debug.Print DebugTimerOff
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
avarKeys(1) = 1
avarKeys(2) = 2
Debug.Print "SortVariantMatrix (1,2) to (1,2):"
DebugTimerOn
SortVariantMatrixRows avarMatrix, Null, avarKeys, False
Debug.Print DebugTimerOff
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
avarKeys(1) = 2
avarKeys(2) = 1
Debug.Print "SortVariantMatrix (1,2) to (2,1):"
DebugTimerOn
SortVariantMatrixRows avarMatrix, Null, avarKeys, False
Debug.Print DebugTimerOff
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
avarKeys(1) = 2
avarKeys(2) = 1
Debug.Print "SortVariantMatrix (2,1) to (2,1):"
DebugTimerOn
SortVariantMatrixRows avarMatrix, Null, avarKeys, False
Debug.Print DebugTimerOff
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
avarKeys(1) = 1
avarKeys(2) = 2
Debug.Print "SortVariantMatrix (2,1) to (1,2):"
DebugTimerOn
SortVariantMatrixRows avarMatrix, Null, avarKeys, False
Debug.Print DebugTimerOff
If fShow Then Debug.Print FormatVariantMatrix(avarMatrix, " ", vbCrLf)
End SubCopyright 1996-1999 Entisoft
Entisoft Tools is a trademark of Entisoft.