UDF > Array >


_ArrayDelete

Supprime les �l�ments sp�cifi�s dans un tableau 1D ou 2D

#include <Array.au3>
_ArrayDelete ( ByRef $aArray, $vRange )

Param�tres

$aArray Tableau � modifier
$vRange �l�ment(s) � supprimer - soit un index unique, une cha�ne contenant des plages (exemple "0;11-15;24") soit un tableau 1D avec le nombre d'�l�ments en position [0] (voir l'exemple pour plus de d�tails)

Valeur de retour

Succ�s: Retourne la nouvelle taille du tableau (voir Remarques)
�chec: Retourne -1 et d�finit @error <> 0.
@error: 1 - $aArray n'est pas un tableau
2 - $aArray n'est pas un tableau 1D ou 2D
3 - $vRange n'est pas une cha�ne de plage valide
4 - $vRange n'est pas un tableau 1D ou a seulement 1 �l�ment
5 - $vRange a un contenu en dehors des limites du tableau

Remarques

$vRange peut �tre une cha�ne contenant les lignes qui doivent �tre supprim�s. Il peut �tre un nombre unique ou une plage d�sign�e par les premi�re et derni�re lignes s�par�es par un tiret (-) - plusieurs plages sont s�par�s par un point-virgule (;).

$vRange peut aussi �tre un tableau 1D �num�rant toutes les lignes � supprimer avec un compteur dans l'�l�ment [0].

Dans les deux cas, les lignes ne sont pas n�cessairement dans l'ordre croissant et peuvent �tre dupliqu�s.

La fonction ne met PAS � jour l'�l�ment compteur du tableau, mais la valeur de retour de la fonction (si elle r�ussit) donne l'index le plus grand des lignes.

En relation

_ArrayAdd, _ArrayInsert

Exemple

#include <Array.au3>

Local $aArray[5] = [0, 1, 2, 3, 4]

_ArrayDisplay($aArray, "Original")
_ArrayDelete($aArray, 2)
_ArrayDisplay($aArray, "Element 2 deleted")

Local $aArray_Base[25][4]
For $i = 0 To 24
    For $j = 0 To 3
        $aArray_Base[$i][$j] = String($i) & "-" & String($j)
    Next
Next

; Ligne unique
$aArray = $aArray_Base
_ArrayDisplay($aArray, "AVANT suppression")
_ArrayDelete($aArray, 7)
_ArrayDisplay($aArray, "LIGNE UNIQUE supprim�e")

; Cha�ne contenant des plages
$aArray = $aArray_Base
Local $sRange = "0;11-15;24"
_ArrayDisplay($aArray, "AVANT suppression")
_ArrayDelete($aArray, $sRange)
ConsoleWrite(" " & @error & @CRLF)
_ArrayDisplay($aArray, "Suppression avec CHAINE DE PLAGE")

; Tableau 1D
$aArray = $aArray_Base
Local $aDel[4] = [3, 5, 11, 13]
_ArrayDisplay($aArray, "AVANT suppression")
_ArrayDelete($aArray, $aDel)
_ArrayDisplay($aArray, "Suppression avec tableau de plage")