Retourner plusieurs arguments

Résolu
Gringoire2004 Messages postés 4 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 19 novembre 2006 - 12 oct. 2006 à 22:59
Gringoire2004 Messages postés 4 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 19 novembre 2006 - 13 oct. 2006 à 14:35
J'aimerais savoir si une fonction peut retourner plusieurs arguments.
Merci

9 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 oct. 2006 à 23:23
Non, une fonction ne peut retourner qu'un seul résultat.

Soit tu te débrouille pour que cette valeur de retour soit une structure contenant toutes les valeurs que tu souhaite pouvoir retourner,

Soit tu code ta fonction de sorte qu'elle puisse modifier des variables passées en arguments. Dans ce cas il faut que ces variables soit passées par référence.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
13 oct. 2006 à 10:10
Lu,

oui on peut faire une fonction qui retourne plusieur arguments
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
13 oct. 2006 à 10:20
Un peu facile de dire oui sans expliquer comment faire.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 oct. 2006 à 10:25
B0mbJack, peux-tu expliquer comment, stp.

Je serais curieux de savoir comment tu arrive à faire retourner plusieurs résultats à une fonction.

Une fonction ne retourne qu'un seul résultat.
Ensuite pour les astuces voir ce que j'ai expliquer plus haut.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
13 oct. 2006 à 11:22
Re

Private Function OUIOUI(xDonneeA,xDonneeB) as String
Dim Alors as String ,PourkoiPas as string
Alors = xDonneeA & space(1) & Date
PourkoiPas = xDonneeB & ....autre opération
OUIOUI = Alors & "/" & PourkoiPas
End Function

Private sub Command1_Click()
dim lol() as String
lol = split(OUIOUI,"/")
msgbox "premier résultat envoyer par la fonction ouioui " & lol(0)
msgbox "deuxieme resultat " & lol(1)
End sub
 ' a partir du moment ou on code nous meme notre fonction, on peut tout lui demander

voila ,j'attend vos réponses
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 oct. 2006 à 11:32
Ok B0mbJack,
Tu ne renvois qu'un seul résultat qui est la concaténation des différentes valeurs que tu souhaite en retour.
C'est une astuce supplémentaire.

Pour tu concurencer, voici la version, passage d'argument (ByRef est implicite en VB6, pas besoin de le préciser suaf pour la clarté du code) :

Private Function OUIOUI(xDonneeA As String, xDonneeB As String, Alors As String, PourkoiPas As String) As String 
    Alors =  xDonneeA & Space(1) & Date 
    PourkoiPas = xDonneeB & Space(1) & Time 
End Function 

Private Sub Command1_Click() 
    Dim rslt1 As String, rslt2 As String 
    Call OUIOUI("La date :", "L'heure :", rslt1, rslt2) 
    MsgBox "premier résultat envoyer par la fonction ouioui -> " & rslt1 
    MsgBox "deuxieme resultat -> " & rslt2 
End Sub 

<small>Coloration syntaxique automatique
[Sevyc64] </small>

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
13 oct. 2006 à 12:10
Re, un autre exemple

Private Type Effet
    Valeur As Long
    Titre As String
End Type

Private Function ouioui() As Effet
ouioui.Titre = "yes"
ouioui.Valeur = 10
End Function


Private Sub Command1_Click()
MsgBox ouioui.Titre
MsgBox ouioui.Valeur
End Sub
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 oct. 2006 à 12:15
Yes, ça c'est la version structure

Ben là, je crois que Gringoire n'a plus que l'embaras du choix

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Gringoire2004 Messages postés 4 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 19 novembre 2006
13 oct. 2006 à 14:35
Merci beaucoup tout le monde, j'ai finalement passé les parmaètres ByRef et ça fonctionne bien.
0
Rejoignez-nous