Redimensionne un tableau existant.
ReDim $array[subscript 1]...[subscript n]
$array | Le nom du tableau à redimensionner. |
subscript | Les nouvelles tailles du tableau dans chacune de ses dimensions. |
#include <Array.au3> Example() Func Example() Local $aArray[1] ; Crée un tableau à une dimension avec 1 élément. For $i = 0 To 100 ; Boucle de 0 à 100 pour accéder aux éléments du tableau ReDim $aArray[UBound($aArray) + 1] ; Détermine la taille actuelle du tableau et l'augmente de 1 $aArray[$i] = $i Next _ArrayDisplay($aArray) ; Affiche le tableau. EndFunc ;==>Example
#include <MsgBoxConstants.au3> Example() Func Example() Local $aArray[1] = [0], $iArrayTotal = 5000, $iCount = 0, $iDimension = 0 Local $hTimer = TimerInit() ; Démarre le minuteur. For $i = 1 To $iArrayTotal ; Retourne True si redimensionné ou False s'il ne l'est pas. ; Utilise ByRef, juste pour passer le tableau et une variable précédemment déclarée pour le suivi de la dimension. If ReDim1D($aArray, $iDimension) Then $iCount += 1 ; Si le tableau a été redimensionné, ajoute 1 au décompte des redimensionnements pour l'affichage à la fin de l'exemple. EndIf $aArray[0] += 1 ; Augmente l'élément d'index zéro [0] d'une valeur de 1. $aArray[$i] = "Row " & $i & ": Col 0" ; Ajoute des données aléatoires. Next $hTimer = Round(TimerDiff($hTimer)) ; Arrête la minuterie et trouve la différence entre le début à la fin. ReDim $aArray[$aArray[0] + 1] ; Retire les éléments vides en ReDimensionnant le tableau avec le nombre d'éléments plus l'élément [0] qui contient le nombre d'éléments. MsgBox($MB_SYSTEMMODAL, "Quelle durée?", "Le nombre de fois que le tableau de " & $iArrayTotal & " éléments a été redimensionné est " & $iCount & " fois." & @CRLF & _ "Il n'a fallu que " & $hTimer & " millisecondes pour terminer.") ; Si on avait utilisé une incrémentation de 1 de la taille du tableau, $iCount serait égal à 5000, pas à 29 comme démontré dans cet exemple. EndFunc ;==>Example ; S'il est nécessaire d'augmenter la taille du tableau elle est multipliée par 1.3 (augmentée de 30%) et arrondi à l'entier supérieur. Func ReDim1D(ByRef $aArray, ByRef $iDimension) ; L'index zéro contient le nombre d'éléments. Local $bReturn = False If ($aArray[0] + 1) >= $iDimension Then $bReturn = True $iDimension = Ceiling(($aArray[0] + 1) * 1.3) ReDim $aArray[$iDimension] EndIf Return $bReturn EndFunc ;==>ReDim1D