Code : Tout sélectionner
#include <Array.au3>
Local $avArray[3] = ["5", "4000", "101"]
_ArraySort($avArray, 0, 0, 0, 0)
_ArrayDisplay($avArray, "Ordre croissant" )
Vais modifier la fonction d'array.au3 pour la forcer a retirer les .txt (car en fait c'est mieux avec ^^') et a prendre les nom de fichier pour des numero et non des string
edit: hop hop hop, ca semble marcher ! me reste a rajouter les .txt... enfin, un coup de stringleft() pis ca sera bon
Code : Tout sélectionner
Local $avArray[3] = ["5", "4000", "101"]
My_ArraySort($avArray,0,0,0,0)
_ArrayDisplay($avArray, "Ordre croissant" )
Func My_ArraySort(ByRef $avArray, $iDescending = 0, $iStart = 0, $iEnd = 0, $iSubItem = 0)
If Not IsArray($avArray) Then Return SetError(1, 0, 0)
Local $iUBound = UBound($avArray) - 1
; Bounds checking
If $iEnd < 1 Or $iEnd > $iUBound Then $iEnd = $iUBound
If $iStart < 0 Then $iStart = 0
If $iStart > $iEnd Then Return SetError(2, 0, 0)
; Sort
Switch UBound($avArray, 0)
Case 1
My__ArrayQuickSort1D($avArray, $iStart, $iEnd)
If $iDescending Then _ArrayReverse($avArray, $iStart, $iEnd)
Case 2
Local $iSubMax = UBound($avArray, 2) - 1
If $iSubItem > $iSubMax Then Return SetError(3, 0, 0)
If $iDescending Then
$iDescending = -1
Else
$iDescending = 1
EndIf
__ArrayQuickSort2D($avArray, $iDescending, $iStart, $iEnd, $iSubItem, $iSubMax)
Case Else
Return SetError(4, 0, 0)
EndSwitch
Return 1
EndFunc ;==>_ArraySort
Func My__ArrayQuickSort1D(ByRef $avArray, ByRef $iStart, ByRef $iEnd)
If $iEnd <= $iStart Then Return
Local $vTmp
; QuickSort
Local $L = $iStart, $R = $iEnd, $vPivot = $avArray[Int(($iStart + $iEnd) / 2)]
Do
; While $avArray[$L] < $vPivot
While Number($avArray[$L]) < Number($vPivot)
$L += 1
WEnd
; While $avArray[$R] > $vPivot
While Number($avArray[$R]) > Number($vPivot)
$R -= 1
WEnd
; Swap
If $L <= $R Then
$vTmp = $avArray[$L]
$avArray[$L] = $avArray[$R]
$avArray[$R] = $vTmp
$L += 1
$R -= 1
EndIf
Until $L > $R
My__ArrayQuickSort1D($avArray, $iStart, $R)
My__ArrayQuickSort1D($avArray, $L, $iEnd)
EndFunc ;==>__ArrayQuickSort1D