Comment faire passer un nom de variable à un module afin d'utiliser ensuite les

Résolu
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013 - 16 juin 2005 à 11:54
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 16 juin 2005 à 19:33
J'aimerais mutualiser une fonction d'affichage dans une textbox pour plusieurs tableaux contenant du texte.

Du genre :

dim variable() as string

public affichage (varible as string)

for i=1to n
tetxbox.text= tetxbox.text+ variable(i)
next i

end sub

Sachant, que variable doit pouvoir correspondre à plusieurs tableaux.

Zifnig
http://zifnig.free.fr

10 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
16 juin 2005 à 14:19
Je ne vois pas où est le problème, nom_tableau sera le tableau que tu passeras.

Quand tu veux afficher tab1 --> affichage tab1
Quand tu veux afficher tab2 --> affichage tab2

etc...

Je te conseille quand même de vider la textbox avant si tu ne veux pas cumuler tout tes tableaux.

Sub Affichage(ByVal nom_tableau As Variant)
textbox.text=""
for i = 1 to 1000
textbox.text = textbox.text + nom_tableau(i)
'nom_tableau prenant les valeurs tab1, tab2 ou tab3
End Sub

Reste aussi la taille max d'une textbox, pourra-t-elle contenir tout ton tableau ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
16 juin 2005 à 12:08
salut,
Ta procédure doit deja comprendre un "SUB"
Dans ta procédure, "Varible" correspond à quoi, et doit être intégré ou ?
Dans ta procédure, "n correspond à quoi, et comment la récupères tu ?
Dans tout ça, je ne vois qu'un seul tableau : dim variable() as string, ou sont les autres ?

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
16 juin 2005 à 12:21
Salut,

Si tu prog en vb6, tu peux essayer ça :

Private Sub Form_Load()
Dim variable(1) As String
variable(1) = "coucou"
Affichage variable
End Sub


Sub Affichage(ByVal v As Variant)
MsgBox v(1)
End Sub


Le non-type variant n'est pas trop recommandé mais dans ce cas on ne peux faire autrement en vb6.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013
16 juin 2005 à 13:59
Je vois que je n'ai pas été assez clair :

mettons que je crée 3 tableaux : tab1(), tab2(), tab3() ayant cahacun 1000 enregistrements.

Je voudrais pouvoir, dans ma fonction affichage, afficher soit les enregistrements de tab1, de tab2 ou tab3 en passant comme paramètre le tableau à afficher, sans avoir à recopier 3 fois le même code (à la vaiable tabx près) conditionnés par des IF.


Sub Affichage(ByVal nom_tableau As Variant)
for i = 1 to 1000
textbox.text = textbox.text + nom_tableau(i)
'nom_tableau prenant les valeurs tab1, tab2 ou tab3
End Sub

Merci, déjà pour ces premières réponses.

Zifnig
http://zifnig.free.fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
16 juin 2005 à 14:11
eh, il y a une erreur dans le passage de paramètre

dim variable() as string

public sub affichage (variable() as string)

for i=0 to ubound(variable)
tetxbox.text= tetxbox.text+ variable(i)
next i

end sub


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013
16 juin 2005 à 14:23
Non, c'est pas comme ça qu'il faut le voir, je voudrais quelque chose du genre :

Sub Affichage(ByVal nom_tableau As Variant)
for i = 1 to 1000
textbox.text = textbox.text + cstr(nom_tableau)(i)
'ceci donne une erreur de syntaxe, mais j'aimeais que cette ligne se transforme en textbox.text = textbox.text + tab1(i), car dans cet exemple nom_tableau serait égal à "tab1"
end sub

Aurait-on la possibilité de passer le pointeur du tableau choisi en variable? autre idée?

Zifnig
http://zifnig.free.fr
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
16 juin 2005 à 14:23
Qui ce conçoit clairement s'ennonce aisement....Hum

c'est pas encore clair



Un tableau c'est quoi ?... un pointeur non ?

Donc tu as besoin en fait de connaître l'adresse et non le nom !!!



Déclarer

Dim Montab1() as integer revient à créer une structure d'entier dont l'adresse est le premier élément



Ecrire "Montab"&1 ne revient pas à ça

L'adresse de la chaine ne te donnera pas l'adresse de ton tableau Montab1... donc marche pas.



A toi de gérer l'alimentation de ton text box et en fonction des cas, de passer soit le tab1, soit le 2 ou le 3

A+
madbob
0
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013
16 juin 2005 à 14:34
Merci canislupus, je ne pensait pas que cela était si simple...honte à moi!

Zifnig
http://zifnig.free.fr
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
16 juin 2005 à 14:42
Dragon, tu as raison si les tableaux passés en paramètre sont tous de type string, sinon, je crains que le variant soit inévitable.

Zfnig, je ne comprend toujours pas car nom_tableau représentera le tableau que tu passes en paramètre à Affichage.

Si tu codes ,dans un bouton par exemple :
Affichage tab1
nom_tableau de ta sub sera tab1.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
16 juin 2005 à 19:33
le problème, c'est que si on envoi dans un textbox, seul le type string passe


bon oki, tu as aussi les chiffres, mais ils sont convertie en string

tu peux faire ceci par contre

dim variable() as string

public sub affichage (varible() as variant)

for i=0 to ubound(variable)
affichage2(variable(i))
next i

end sub

private sub affichage2(texte as string)
tetxbox.text= tetxbox.text & texte
end sub

private sub affichage2(texte as integer)
tetxbox.text= tetxbox.text & texte
end sub

private sub affichage2(texte as Nom)
tetxbox.text= tetxbox.text & texte.Prenom & " " & texte.Nom
end sub

...

ça permet de faire un certain traitement dépendant le type de variable disponible. Par contre c,est du .net, je sais pas si vb6.0 supporte la surcharge de classe aussi bien


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Rejoignez-nous