Aide pour un tableau

cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 - 4 août 2005 à 15:52
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 - 4 août 2005 à 16:37
Bonjour, je sias bien utilisé une listbox mais un tableau en VB pas du tout.

Est ec que quelqu'un pourrait me donner les instructions pour travailler sur un tableau.

Bon je me doute qu'un tableau de string doit s edéclarer de cette manière

dim tableau() as string

Mais pour rajouter un élément, je patine!
Existe t'il un genre additem? de meme removeitem?

Merci d'avance!
Douns

4 réponses

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
4 août 2005 à 15:58
Violent Ken

Voilà un tutoriel complet sur les tableaux (dynamiques)
Mais ce n'est pas de moi, mais de qqun sur ce site


Les tableaux dynamiques sont appelés ainsi car ils peuvent changer de taille : cela peut être utile si l'on veut établir par exemple une petite base de données, en tout les cas une liste succeptible de changer de dimension(s). Le but de ce tuturial est de montrer les quelques fonctions qui ne sont pas présentées dans l'aide de VBasic.




Pour créer un tableau dynamique, il suffit de lui affecter une taille vide :


Dim liste() As Integer




Ensuite, on peut le redimensionner à l'aide de la fonction redim, en indiquant la nouvelle taille entre parenthèses :


Redim liste(5)




L'inconvénient... C'est que toutes les données du tableau sont effacées ! Il faut donc y rajouter le mot-clef Preserve :


Redim preserve liste(5)




Vous pouvez bien sûr également créer des tableaux dynamiques à "taille personnalisée" :


Redim liste(5 To 25)




Ceci dit, il est impossible de redimensionner un tableau à taille "normale" pour lui donner une taille "personnalisée" en utilisant preserve ! Par exemple, ce script provoquera une erreur:


Dim liste() AsInteger


Redim liste(5)


Redim preserve liste(1 To 5)




...Mais celui-ci, non !


Dim liste() AsInteger


Redim liste(5)


Redim liste(1 To 5)




De même, il est possible de changer le nombre de dimensions d'un tableau dynamique... Mais sans utiliser preserve ! Par exemple, ce script est tout à fait valide :


Dim liste() As Integer


Redim liste(2, 5)


Redim liste(1, 3, 4)




Maintenant que nous avons vu les bases, voici quelques petits trucs...




J'ai longtemps redimensionné mes tableaux en gardant leurs tailles dans des variables séparées... Ce qui ne manquait pas de causer nombre d'erreurs !:)Heureusement, il existe l'instruction UBound(), qui retourne la taille maximale du tableau...


Exemple :


Dim liste() AsInteger


Redim liste(25) AsInteger


MsgBox UBound(liste)'affiche 25 !




Il existe également son inverse : LBound(), qui retourne la taille minimale du tableau, dans le cas d'un tableau "personnalisé".


Exemple :


Dim liste() AsInteger


Redim liste(6 To 82)


For i = LBound(liste) ToUBound(liste)


MsgBox liste(i)'affiche chaque valeur du tableau, soit de 6 à 82


Next i




Pour finir, voici une petite fonction sympathique :




PublicSub Delete(ByRef tableau AsVariant, element AsVariant)


Dim i AsInteger


For i = element ToUBound(tableau) - 1


tableau(i) = tableau(i + 1)


Next


Redim Preserve tableau(UBound(tableau) - 1)


EndSub




Elle vous permettra de supprimer n'importe quel élément d'un tableau dynamique et de décaler les autres éléments, de façon à ce qu'il n'ait pas de "trou".... Voici un exemple d'utilisation :


Dim liste() As String


Redim liste(4)


liste(0) = "je suis bon !"


liste(1) = "je suis bon !"


liste(2) = "je suis mauvais !"


liste(3) = "je suis bon !"


liste(4) = "je suis bon !"


Delete liste, 2'On supprime l'élément 2




Le tableau liste ne comprend donc plus que des "je suis bon !" et est redimensionné à 3...




Bref, vous l'avez compris : les tableaux dynamiques sont des outils vraiment puissants qui peuvent beaucoup faciliter la programmation.
0
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
4 août 2005 à 16:06
Je suis sous VB5.
Étrangement Udouns n'est pas reconnu.
Le code que tu m'as donné est du .net?
0
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
4 août 2005 à 16:32
Violent Ken


Nan, c'est du VB6, mais ou est ce que tu as vu Udouns ?
0
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
4 août 2005 à 16:37
mince UBound!

Je fatigue ca ressemblait à mion pseudo alors je l'ai tapé! :p

Au pasage, comment tu comptes le nombre d'élément d'un tableau?
0
Rejoignez-nous