Bonjour voila une fonction qui permet permet de faire une recherche dans un array qui a autant de dimension que vous voulez
Je ne sais pas s'il existe mais après quelque recherche je n'en ai pas trouver
par contre vous elle ne fonctionne pas si vous n'avez pas autoit sur votre ordi et vous devez aussi avoir
que j'ai trouver sur ce site
http://www.autoitscript.com/forum/topic ... ntry880884
Voila les argument à insérer
1=L'array en question
2=La valeur ou le string rechercher
Voila la fonction
► Afficher le textecode
Code : Tout sélectionner
#include <Container.au3>
Func _ArrayFind($array,$valeur)
$nb=0
Do
$nb+=1
Until UBound($array,$nb)=0 And @error=2
$taille=$nb-1
If $taille=0 Or IsArray($array)=0 Then return 0
$oContainer = _Container_Open("storage", 1)
_Container_PutProperty($oContainer,"Array",$array)
$file=@ScriptDir&"\ArrayFind.au3"
$file1=FileOpen($file,2)
FileWrite($file1,"#include <Container.au3>"&@CRLF)
FileWrite($file1,'$oContainer = _Container_Open("storage", 0)'&@CRLF)
FileWrite($file1,'$array= _Container_GetProperty($oContainer, "Array")'&@CRLF)
FileWrite($file1,'Local $valeur="'&$valeur&'"'&@CRLF&"Local $nb["&$taille&"]"&@CRLF&"Local $taille="&$taille&@CRLF)
FileWrite($file1,"Local $array2[0]["&$taille&"]"&@CRLF)
For $nb=0 To $taille-1
FileWrite($file1,"For $nb["&$nb&"]=0 to "&UBound($array,$nb+1)-1&@CRLF)
Next
FileWrite($file1,"If $array")
For $nb=0 To $taille-1
FileWrite($file1,"[$nb["&$nb&"]]")
Next
FileWrite($file1," ==$valeur Then"&@CRLF)
FileWrite($file1,"ReDim $array2[Ubound($array2,1)+1][$taille]"&@CRLF)
FileWrite($file1,"For $nb2=0 To $taille-1"&@CRLF)
FileWrite($file1,"$array2[UBound($array2,1)-1][$nb2]=$nb[$nb2]")
FileWrite($file1,@CRLF&"Next"&@CRLF&"EndIf"&@CRLF)
For $nb=0 To $taille-1
FileWrite($file1,"Next"&@CRLF)
Next
FileWrite($file1,"_Container_Close($oContainer)"&@CRLF)
FileWrite($file1,'$oContainer = _Container_Open("storage", 1)'&@CRLF)
FileWrite($file1,'_Container_PutProperty($oContainer,"Array",$array2)'&@CRLF)
FileClose($file1)
ShellExecuteWait(@ScriptDir&"\ArrayFind.au3")
FileDelete($file)
$oContainer = _Container_Open("storage",0)
$array= _Container_GetProperty($oContainer, "Array")
_Container_Close($oContainer)
return $array
EndFunc
Si vous rencontrez des bug faite le moi savoir c'est la première fonction que je partage
j’espère qu'il n'existais pas encore et qu'il vous aideras
EDIT:
Mise a jour Plus besoin d’écrire le nombre de dimension