cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010
-
20 août 2005 à 14:37
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
22 août 2005 à 00:31
bonjour, j'ai un petit soucis avec des tableaux
soit 2 tableaux (a titre d'exemple):
dim tableau1(10) as string
dim tableau2(10) as string
tableau1 = array("0","1","2","3","4","5","6","7","8","9")
tableau2 = array("0","1","2","3","4","5","6","7","8","9")
je met ces valeurs juste a titre d'exemple
je cherche une fonction qui me permettrait de comparer les 2 tableaux et que qui me dise si les valeurs contenues dans ces tableaux sont identiques ou pas
si quelqu'un peut me dire ca, sachant que je travaille en VB6, merci
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 août 2005 à 16:18
Salut
Simple : Suffit te d'utiliser une boucle de lecture :
Dim Différent As Boolean, r As Long
For r = 0 To UBound(tableau1)
If Tableau1(r) <> Tableau2(r) Then
Différent = True
Exit For
End If
Next r
If Différent Then MsgBox "Tableaux différents !"
Il faut bien sûr que les deux tableaux aient le même nombre d'éléments
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 août 2005 à 16:21
Re
Autre chose : Normalement, tu ne peux pas utiliser la commande Array sur une tableau dimensionné.
Il faut le dimensionner dynamiquement :
Dim Tableau1() As String
Dim Tableau2() As String
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010 20 août 2005 à 17:48
oui j'ai vu l'erreur, mais c'etait juste un exemple tapé rapidement, pour que vous compreniez ce que je recherche...
j'avais déjà pensé a la boucle for, mais c'est vrai que je dois faire la comparaison assez complexe de tableaux...il n'y a donc aucune fonction vb qui gère ca?
en fouillant, j'aientendu parler de "array.equals", ca dit quelque chose a quelqu'un, c'est du vb6 ?
déjà merci pour les réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 20 août 2005 à 19:14
Salut, je ne connais pas de fonction toute faite pour effectuer une compare de tableaux. Mais une petite astuce, utilisable avec des tableaux de strings à 1 dimension :
MsgBox StrComp(Join(t1, ""), Join(t2, ""))
Explik :
1 - join te permet de reconstituer une chaine avec les éléments d'un tableau (string) en choisissant un séparateur (là, j'ai pris "" comme séparateur).
2 - strcomp compare les 2 chaines obtenues :
0 = les chaines (donc les tableaux) sont égales
-1 = chaine (tableau) t1 < chaine (tableau) t2
1 = chaine (tableau) t1 > chaine (tableau) t2
En fait, cette astuce te permettra seulement de savoir si 2 tableaux de strings (à 1 dimension) sont égaux ou non. Peut-être qu'il faut même les trier avant.
Sinon, pour des tableaux d'integer ou autre, ça se complique mais la soluce de jack est bonne pour tous les types.
PS : array.equals, je n'ai vu ça qu'en java mais pas en vb6.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 21 août 2005 à 08:14
... vaudrait mieux ajouter un séparateur avec le Joint() pour être plus sur du coup, genre vbNullChar, tout est autant que ce caractère n'apparaissent jamais dans les éléments des tableaux.
cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010 21 août 2005 à 22:47
En fait, je cherchais un fonction manière d'alléger mon code mais bon, vous rentrez dans des "idées" un peu trop complexe pour mon niveau de débutant... j'ai déjà fait mon script a base de boucles for, je vais laisser ca comme ca...
merci pour votre participation
A bientôt
Mathieu
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 22 août 2005 à 00:31
bumbo < En fait, pour comparer des tableau, el code de Jack est le plus passe-partout. Après Canis Lupus à proposer une astuce qui peut faire gagner du temps d'exécution mais faut faire gaffe au effet non désirable.
Bosse déjà avec le code de Jack, c'est un excellent début