Comment retourner plusieurs variables dans une fonction?

rurouni - 9 juil. 2001 à 13:38
 rurouni - 9 juil. 2001 à 19:14
Voila.J ai deux string dans une fonction que j aimerais retourner.
Je ne veux pas les concatener avec un separateur.
Y a t il un moyen de faire une Structure en VB ou une liste
pour que je puisse retourner mes deux variables?
merci.

Rurouni

4 réponses

tu peux créer une structure contenant tes deux chaines
comme ceci :

dans la partie Générale de déclaration de variables, il faut
écrire :
Private Type MonTypeAMoi
chaine1 as string
chaine2 as string
end Type

puis ta fonction retourne un type MonTypeAMoi
dans lequel tu auras écris des deux string
0
Encore 2 petites questions
Comment j accede aux champs chaine1 et chaine2???

en c je ferais par exemple:
MonTypeAMoi.chaine1 = "coucou"

comme le Type MonTypeAMoi est retourné, si je declare un autre MonTypeAMoi dans la fonction qui recupere le resultat, VB va t il comprendre que c MonTypeAMoi est un nouveau type?
0
Oui, c'est comme en c++ pour récupérer les valeurs.
Si tu as déclaré la variable comme ci:
Dim Bonjour as MonTypeAMoi

il suffit de faire Bonjour.chaine1 = "coucou"

Sinon, dans la fonction, il suffit de déclarer une
variable de type MonTypeAMoi qui récupère le résultat.
EXEMPLE :

Private Sub FonctionPrincipale()
dim Variable1 as MonTypeAMoi
Variable1 = FonctionSecondaireQuiRenvoitMesDeuxChaines()
Msgbox Variable1.chaine1 & " " & Variable1.chaine2
End sub

Comme MonTypeAMoi est déclaré généralement, on peut créer
des variables de ce type dans n'importe quelle fonction
du programme, le type MonTypeAMoi étant défini une fois
pour toute.
De plus Variable1 étant une variable locale, elle est
traitée indépendament, elle est différente de la variable
retournée par la fonction secondaire, c'est une "copie"
du résultat

J'espère que ça répond à ta seconde question (que j'ai
pas trop compris sur le coup)
Sinon, tu peux aussi passer en paramètre Variable1 par valeur dans la fonction (comme en c++ avec &)
Il suffit de faire :
Public Function FonctionSecondaire(ByVal Variable1 as MonTypeAMoi)
0
C etait ca! C bon, j ai tout compris.
Merci
Rurouni
0
Rejoignez-nous