Les Snippets

Connexion

[OOBasic] Rechercher dans un Array: fonction InArray()

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 04/08/2011 16:26:16 et initié par pifou25 [Liste]
Vue : 1139
Catégorie(s) : Trucs & Astuces, Algorithme, Divers
Langages dispo pour ce code :
- VB 2005



Langage : VB 2005
Date ajout : 04/08/2011
Posté par pifou25 [Liste]

'REM rechercher un mot dans un tableau, renvoie l'index si trouvé, ou -1 si FAUX
'REM si tableau à 2 dimensions : rechercher dans la dim1 sur la ligne val1 de dim1,
'REM      renvoie i si trouvé, -1 sinon et dans ce cas dim1 contient la 1ere position vide
'REM si val1 = -1 ou manquant : rechercher dans les 2 directions, la fonction renvoie i et val1 contiendra j
'REM      renvoie i si trouvé, -1 sinon et dim1 contient j si trouvé
'REM s'arrete sur la 1ere valeur vide
Function InArray(mot as string, array() as string, optional dim1 as integer, optional val1 as integer) as Integer
On Error goto Err_InArray
	dim i as integer, j as integer


	If IsMissing(dim1) Then
		dim1 = 1
		For i = lbound(array, dim1) To ubound(array, dim1)
			If mot = array(i) Then
				InArray = i
				Exit Function
			ElseIf array(i) = "" Then
				InArray = -1
				Exit Function
			End If
		Next I
	ElseIf dim1 <= 2 Then ' sait pas traiter les matrices 3 dimensions
		If Not IsMissing(val1) or val1 >= 0 Then
			REM rechercher dans l'autre dimension (dim2?) sur la ligne val1 de la dim1
			For i = lbound(array, dim1) To ubound(array, dim1)
				If dim1 = 1 Then ' val1 est sur la 2e dimension
					If mot = array(i, val1) Then
						InArray = i
						Exit Function
					ElseIf  array(i, val1) = "" Then ' fin de recherche
						InArray = -1
						dim1 = i
						Exit Function
					End If
				ElseIf dim1 = 2 Then
					If mot = array(val1, i) Then
						InArray = i
						Exit Function
					ElseIf  array(val1, i) = "" Then ' fin de recherche
						InArray = -1
						dim1 = i
						Exit Function
					End If
				End If
			Next i
		Else REM recherche dans les 2 dimensions
			For i = lbound(array, 1) To ubound(array, 1)
				For j = lbound(array, 2) To ubound(array, 2)
					If mot = array(i, j) Then
						InArray = i
						dim1 = j ' retour 2e valeur dans le param d'entrée !
						Exit Function
					ElseIf  array(val1, i) = "" Then ' pas dans cette ligne ?
						If j = lbound(array, 2) Then ' début de ligne vide ?
							InArray = -1
							Exit Function ' fin de recherche, pas trouvé
						Else
							Exit For ' ligne suivante
						End If
					End If
				Next j
			Next i
		End If
	End If
	InArray = -1
Exit Function
Err_InArray:
	InArray = -1
	Msgbox "Erreur " & err & " dans InArray (L." & erl & ") : " & error(err) & chr(13) & sValue & chr(13) & "*" & sTxt & "* "
	End
End Function


Remarque :
InArray(valeur, tableau)
renvoie l'index si trouvé, -1 sinon.
c'est un peu plus compliqué pour les tableaux multidimensionnels, voir le commentaire & tester ;)

Snippets en rapport avec : Tableau, Array, Recherche, Dimension, Multi dimension



Codes sources en rapport avec : Tableau, Array, Recherche, Dimension, Multi dimension

{Visual Basic, VB6, VB.NET, VB 2005} RECHERCHE DES FICHIERS PAR LEURS NOMS
SearchFileByName.vbs : C'est un Vbscript pour rechercher des fichiers par leurs noms et générer le R...

{Assembleur} CRÉER DES TABLEAUX DE DONNÉES DE MANIÈRE DYNAMIQUE
Le source est composé de plusieurs fonctions (utilisables par inclusion du fichier). Il est assez p...

{PHP} PARCOURS DE TABLEAU À L'AIDE D'ATTRIBUTS HTML "NAME
Alors voici une petite source qui permet d'atteindre et modifier une valeur d'un array à l'aide d'un...

{PHP} EXÉCUTER DES REQUETE STYLE SQL SUR UN ARRAY
La classe myArray, pour l'instant en version "j'ai codé comme un cochon" permet l'exécution de requê...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION DE STOCK
Bonjour à tous! Voici un petit prog pour gérer un stock d'article, avec une recherche par référence...

{Flash} FAIRE TOURNER UN TABLEAU (ARRAY)
Il est parfois utile ou nécessaire de faire 'tourner' un Array, c'est à dire de décaler tout le cont...

{Flash} UTILISATION DYNAMIQUE D'UN TABLEAU
Utilisation d'un tableau : " array ", pour se logger, faire une recherche dans les données existante...

{Flash} RECHERCHE D'INFORMATION VIA UN TABLEAU
Petit script qui permet de mieux comprendre l'utilisation d'un tableau. Si vous désirez recherch...

{PHP} DÉTERMINATION DU CHEMIN D'INDEXAGE MENANT À UNE VALEUR DANS UN TABLEAU MULTI-DIMENSIONNEL
Cette fonction sert à trouver tous les indices qu'il faut suivre dans un tableau multidimentionnel p...

{Javascript / DHTML} TRANSFORMER UN TABLEAU JAVASCRIPT EN UN TABLEAU HTML
Cette fonction prend en argument une variable javascript qui est un tableau, une matrice à x lignes ...