Cherche une valeur dans un tableau 1D ou 2D. Similaire � _ArrayBinarySearch(), sauf que le tableau n'a pas besoin d'�tre tri�
#include <Array.au3>
_ArraySearch ( Const ByRef $aArray, $vValue [, $iStart = 0 [, $iEnd = 0 [, $iCase = 0 [, $iCompare = 0 [, $iForward = 1 [, $iSubItem = -1 [, $bRow = False]]]]]]] )
$aArray | Le tableau o� chercher |
$vValue | Ce qu'il faut rechercher dans $aArray |
$iStart | [optionnel] Index du tableau o� commencer la recherche |
$iEnd | [optionnel] Index du tableau o� arr�ter la recherche |
$iCase | [optionnel] Si la valeur est 1, la recherche est sensible � la casse |
$iCompare | [optionnel] 0 - Convertit les variables dans le m�me type (par d�faut), "string" = 0, "" = 0 ou "0" = 0 (si $iCase = 0) 1 - Ex�cute une recherche partielle 2 - La comparaison retourne true si les variables ont le m�me type et la m�me valeur 3 - La comparaison utilise un mod�le d'expression r�guli�re fourni par $vValeur |
$iForward | [optionnel] Si d�fini � 0, la recherche dans le tableau se fait de la fin au d�but (au lieu du d�but � la fin) |
$iSubItem | [optionnel] Sous-index de recherche dans un tableau 2D |
$bRow | [optionnel] Si True, $iSubItem d�finit la ligne o� chercher. False, par d�faut, recherche dans les colonnes |
Succ�s: | Retourne l'index o� $vValeur a �t� trouv�. |
�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 - $aArray est vide 4 - $iStart est sup�rieure � $iEnd 5 - Le tableau n'est pas 2D et $bRow est � true 6 - $vValeur n'a pas �t� trouv�e dans le tableau |
Cette fonction est susceptible d'�tre plus lente que _ArrayBinarySearch() mais est utile lorsque le tableau ne peut pas �tre tri� avant la recherche.
Les valeurs de $iCompare ne peuvent pas �tre combin�es ensemble.
_ArrayBinarySearch, _ArrayFindAll
#include <Array.au3> #include <MsgBoxConstants.au3> Local $aArray[6][4] For $i = 0 To 5 For $j = 0 To 3 $aArray[$i][$j] = "#" & String($i) & String($j) Next Next _ArrayDisplay($aArray, "Regarder '#32'", Default, 8) ; Recherche par colonne (en regardant dans la colonne 2) Local $iIndex = _ArraySearch($aArray, "#32", 0, 0, 0, 0, 1, 2) MsgBox($MB_SYSTEMMODAL, "Trouv� '#32'", "Colonne 2 sur ligne " & $iIndex) ; Recherche par rang�e (en regardant la ligne 3) $iIndex = _ArraySearch($aArray, "#32", 0, 0, 0, 0, 1, 3, True) MsgBox($MB_SYSTEMMODAL, "Trouv� '#32'", "Ligne 3 dans colonne " & $iIndex)
; Utilisation d'un tableau 2D #include <Array.au3> #include <MsgBoxConstants.au3> Local $avArray[6][2] = [ _ ["String0", "SubString0"], _ ["String1", "SubString1"], _ ["String2", "SubString2"], _ ["String3", "SubString3"], _ ["String4", "SubString4"], _ ["String5", "SubString5"]] _ArrayDisplay($avArray, "$avArray") Local $sSearch = InputBox("_ArraySearch() demo", "Cha�ne � chercher?") If @error Then Exit Local $sColumn = InputBox("_ArraySearch() demo", "Colonne � chercher?") If @error Then Exit $sColumn = Int($sColumn) Local $iIndex = _ArraySearch($avArray, $sSearch, 0, 0, 0, 1, 1, $sColumn) If @error Then MsgBox($MB_SYSTEMMODAL, "Pas trouv�", '"' & $sSearch & '" n''a pas �t� trouv� dans la colonne ' & $sColumn & '.') Else MsgBox($MB_SYSTEMMODAL, "Trouv�", '"'& $sSearch & '" a �t� trouv� dans le tableau � la position '& $iIndex & 'dans la colonne '& $sColumn & '.') EndIf