Retourner plusieurs arguments [Résolu]

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

9 réponses

Répondre au sujet
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 12 oct. 2006 à 23:23
+3
Utile
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 #
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_casy
B0mbJacK 141 Messages postés lundi 23 février 2004Date d'inscription 25 octobre 2006 Dernière intervention - 13 oct. 2006 à 10:10
0
Utile
Lu,

oui on peut faire une fonction qui retourne plusieur arguments
Commenter la réponse de B0mbJacK
fregolo52 1106 Messages postés mercredi 15 juin 2011Date d'inscription 19 juillet 2016 Dernière intervention - 13 oct. 2006 à 10:20
0
Utile
Un peu facile de dire oui sans expliquer comment faire.
Commenter la réponse de fregolo52
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 13 oct. 2006 à 10:25
0
Utile
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 #
Commenter la réponse de cs_casy
B0mbJacK 141 Messages postés lundi 23 février 2004Date d'inscription 25 octobre 2006 Dernière intervention - 13 oct. 2006 à 11:22
0
Utile
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
Commenter la réponse de B0mbJacK
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 13 oct. 2006 à 11:32
0
Utile
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 #
Commenter la réponse de cs_casy
B0mbJacK 141 Messages postés lundi 23 février 2004Date d'inscription 25 octobre 2006 Dernière intervention - 13 oct. 2006 à 12:10
0
Utile
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
Commenter la réponse de B0mbJacK
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 13 oct. 2006 à 12:15
0
Utile
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 #
Commenter la réponse de cs_casy
Gringoire2004 4 Messages postés jeudi 12 octobre 2006Date d'inscription 19 novembre 2006 Dernière intervention - 13 oct. 2006 à 14:35
0
Utile
Merci beaucoup tout le monde, j'ai finalement passé les parmaètres ByRef et ça fonctionne bien.
Commenter la réponse de Gringoire2004

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.