Ajoute une valeur sp�cifi�e � la fin d'un tableau existant 1D ou 2D
#include <Array.au3>
_ArrayAdd ( ByRef $aArray, $vValue [, $iStart = 0 [, $sDelim_Item = "|" [, $sDelim_Row = @CRLF [, $iForce = $ARRAYFILL_FORCE_DEFAULT]]]] )
$aArray | Tableau � modifier |
$vValue | Valeur(s) � ajouter, qui peut �tre un �l�ment simple, une cha�ne avec s�parateurs ou un tableau |
$iStart | [optionnel] Colonne o� l'ajout commence (tableau 2D seulement) |
$sDelim_Item | [optionnel] S�parateur � utiliser si la cha�ne a �t� �clat�e en �l�ments |
$sDelim_Row | [optionnel] S�parateur � utiliser si la cha�ne a �t� �clat�e en lignes de tableau (tableau 2D seulement) |
$iForce | [optionnel] Maintient le comportement par d�faut, ARRAYFILL_FORCE_DEFAULT (0) Force l'addition de $vValue comme �l�ment unique, $ARRAYFILL_FORCE_SINGLEITEM (1) Ou force le type de donn�es pour tous les �l�ments ajout�s $ARRAYFILL_FORCE_INT (2) $ARRAYFILL_FORCE_NUMBER (3) $ARRAYFILL_FORCE_PTR (4) $ARRAYFILL_FORCE_HWND (5) $ARRAYFILL_FORCE_STRING (6) $ARRAYFILL_FORCE_BOOLEAN (7) Voir Remarques pour plus de d�tails |
Succ�s: | Retourne l'index du dernier �l�ment ajout� |
�chec: | Retourne -1 et d�finit @error <> 0 |
@error: | 1 - $aArray n'est pas un tableau 2 - $aArray n'est pas un tableau de dimension 1 ou 2 3 - $vValue a trop de colonnes pour s'adapter � $aArray 4 - $iStart est en dehors des limites du tableau (2D seulement) 5 - Le nombre de dimensions des tableaux $aArray et $vValue ne correspondent pas |
Le mode d'insertion d�pend du type de $vValeur, mais l'utilisation de $iForce peut modifier ceci. Le comportement par d�faut est le suivant:
Tableaux 1D:
El�ment unique - ajoute un �l�ment
Cha�ne avec s�parateurs $sDelim_Item - ajoute autant d'�l�ments que de sous-cha�nes
Tableau 1D de base 0 - ajoute autant d'�l�ments qu'il y a d'�l�ments dans le tableau
Tableaux 2D:
Cha�ne avec s�parateurs $sDelim_Item - ajoute une ligne, les colonnes sont remplies si il y a assez de sous-cha�nes
Cha�ne avec s�parateurs $sDelim_Row - ajoute autant de lignes que de sous-cha�nes, une seule colonne est remplie
Cha�ne avec s�parateurs $sDelim_Item & Row - ajoute des lignes et des �l�ments, selon les sous-cha�nes
Tableau 2D de base 0 - ajoute autant de lignes/colonnes que dans le tableau
Une cha�ne vide ("") est ajout�e s'il n'y a pas suffisamment d'�l�ments sp�cifi�s dans $vValeur. Les �l�ments en exc�s sont ignor�s.
La d�finition du param�tre $iForce peut modifier le comportement par d�faut de l'insertion ou modifier le type de donn�es pour les �l�ments ajout�s. Il peut �tre d�fini comme suit:
$ARRAYFILL_FORCE_DEFAULT (par d�faut):
- Les �l�ments sont �clat�s de la mani�re d�crite ci-dessus. Les �l�ments uniques et les �l�ments d'un tableau conservent leurs types de donn�es - les cha�nes avec s�parateurs sont ajout�es sous forme de cha�nes.
$ARRAYFILL_FORCE_SINGLEITEM:
- Si $aArray est un tableau 1D, $vValeur est ajout�e comme �l�ment unique.
- Si $aArray est un tableau 2D, le param�tre est ignor�.
$ARRAYFILL_FORCE_INT, $ARRAYFILL_FORCE_NUMBER, $ARRAYFILL_FORCE_PTR, $ARRAYFILL_FORCE_HWND, $ARRAYFILL_FORCE_STRING, $ARRAYFILL_FORCE_BOOLEAN
- Si $vValeur est un �l�ment unique, il est forc� dans le type de donn�es d�fini - par d�faut, il conserverait son type de donn�es existant.
- Si $vValeur est une cha�ne avec s�parateurs, tous les �l�ments sont forc�s dans le type de donn�es sp�cifi� - par d�faut, ils seraient ajout�s au tableau sous forme de cha�nes. Si diff�rents types de donn�es sont n�cessaires pour les �l�ments, ils doivent �tre pass�s comme un tableau.
- Si $vValeur est un tableau, le param�tre est ignor� et les �l�ments du tableau sont ajout�s en conservant leurs types de donn�es existants.
Si $iForce est d�fini sur toute autre valeur, il est ignor�.
Notez que $ARRAYFILL_FORCE_BOOLEAN regarde les cha�nes litt�rales de la fa�on suivante:
- "True" et "1" comme True
- "False", "0" et "" (cha�ne vide) comme False
La fonction ne met PAS � jour le nombre des �l�ments dans le tableau, mais la valeur de retour de la fonction (en cas de succ�s) donne le nouvel index de ligne le plus �lev� du tableau.
_ArrayConcatenate, _ArrayDelete, _ArrayInsert, _ArrayPop, _ArrayPush
#include <Array.au3> #include <MsgBoxConstants.au3> Local $aArray_Base[2] = ["Org Item 0", "Org item 1"] _ArrayDisplay($aArray_Base, "1D - Tableau de base") ; Ajoute un �l�ment unique Local $aArray = $aArray_Base Local $sSingleFill = "New Item 2" _ArrayAdd($aArray, $sSingleFill) _ArrayDisplay($aArray, "1D - Unique") ; Ajoute une cha�ne avec s�parateurs - chaque sous-cha�ne ins�re un nouvel �l�ment $aArray = $aArray_Base Local $sFill = "" For $i = 1 To 5 $sFill &= "New Item " & String($i + 1) & "|" Next $sFill = StringTrimRight($sFill, 1) MsgBox($MB_SYSTEMMODAL, "Cha�ne avec s�parateurs � ajouter", $sFill) _ArrayAdd($aArray, $sFill) _ArrayDisplay($aArray, "1D - Cha�ne avec s�parateurs") ; Ins�re un tableau 1D - chaque sous-cha�ne ins�re un nouvel �l�ment $aArray = $aArray_Base Local $aFill[5] For $i = 0 To 4 $aFill[$i] = "New Item " & String($i + 2) Next _ArrayDisplay($aFill, "Tableau � ajouter") _ArrayAdd($aArray, $aFill) _ArrayDisplay($aArray, "1D - Tableau 1D")
#include <Array.au3> Local $aArray, $sFill Local $aArray_Base[2][2] = [["Item 0 - 0", "Item 0 - 1"],["Item 1 - 0", "Item 1 - 1"]] _ArrayDisplay($aArray_Base, "2D - Tableau de base") ; Ajoute les sous-cha�nes de la cha�ne avec s�parateurs $aArray = $aArray_Base $sFill = "New Item 2 - 0|New Item 2 - 1" _ArrayAdd($aArray, $sFill) _ArrayDisplay($aArray, "2D - Cha�ne avec s�parateurs") ; Ajoute une ligne � partir d'un cha�ne avec s�parateurs - charg� en colonne 1 $aArray = $aArray_Base $sFill = "New Item 2 - 1" & @CRLF & "New Item 3 - 1" _ArrayAdd($aArray, $sFill, 1) _ArrayDisplay($aArray, "2D - Ligne avec s�parateurs") ; Ajoute �l�ment & ligne de la cha�ne avec s�parateurs $aArray = $aArray_Base $sFill = "New Item 2 - 0|New Item 2 - 1" & @CRLF & "New Item 3 - 0|New Item 3 - 1" _ArrayAdd($aArray, $sFill) _ArrayDisplay($aArray, "2D - El�ment & ligne avec s�parateurs") ; Ajoute un tableau 2D $aArray = $aArray_Base Local $aFill[2][2] = [["New Item 2 - 1", "New Item 2 - 2"],["New Item 3 - 1", "New Item 3 - 2"]] _ArrayAdd($aArray, $aFill) _ArrayDisplay($aArray, "2D - Tableau 2D") ; Ajoute un tableau 2D - un seul �l�ment/colonne - charg� dans la colonne 1 $aArray = $aArray_Base Local $aFill[2][1] = [["New Item 2 - 1"],["New Item 3 - 1"]] _ArrayAdd($aArray, $aFill, 1) _ArrayDisplay($aArray, "2D - Tableau 2D")
#include <Array.au3> #include <MsgBoxConstants.au3> Local $aArray_Base[2] = ["Org Item 0", "Org item 1"] Local $aArray Local $sFill = "" For $i = 2 To 6 $sFill &= String($i) & "|" Next ; Enl�ve le dernier s�parateur $sFill = StringTrimRight($sFill, 1) MsgBox($MB_SYSTEMMODAL, "Cha�ne avec s�parateur � ajouter", $sFill) ; Ins�re des �l�ments � partir d'une cha�ne avec s�parateurs $aArray = $aArray_Base _ArrayAdd($aArray, $sFill) _ArrayDisplay($aArray, "Converti en cha�ne") ; Mais converti en type de donn�e cha�ne lors de l'insertion MsgBox($MB_SYSTEMMODAL, "R�sultat", "Donn�e:" & @TAB & $aArray[6] & @CRLF & "Type de donn�e:" & @TAB & VarGetType($aArray[6])) ; Ajoute des �l�mens � partir d'une cha�ne avec s�parateurs $aArray = $aArray_Base ; Maintenant force le type de donn�es � Number Local $hDataType = Number _ArrayAdd($aArray, $sFill, Default, Default, Default, $hDataType) _ArrayDisplay($aArray, "For�� � Number") ; Et le type de donn�e est for�� au type requis MsgBox($MB_SYSTEMMODAL, "Resultat", "Donn�e:" & @TAB & $aArray[6] & @CRLF & "Type de donn�e:" & @TAB & VarGetType($aArray[6]))