cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 septembre 2005
-
4 août 2005 à 15:52
cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 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?
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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.