UDF > Array >


_ArraySearch

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]]]]]]] )

Param�tres

$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

Valeur de retour

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

Remarques

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.

En relation

_ArrayBinarySearch, _ArrayFindAll

Exemples

Exemple 1

#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)


Exemple 2

; 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