Une fonction qui renoie 2 variables ?

guiguimac - 29 août 2001 à 22:41
 fabiin - 30 août 2001 à 13:28
bonsoir,
est-il possible de créer une fonction qui renvoie deux variable ?
voilà en gros le corps de ma fonction. les variables à extraire sont : layer et texte.
merci d'avance !

Public Function findtag(ByVal texte As String, ByVal tagfin As String) As String
Dim temp As String, L1
While temp <> "tagfin"
position = InStr(1, texte, ">")
L1 = Left(texte, position + 1)
b = InStr(L1, "<")
temp = Mid(L1, b, 8)
layer = layer + L1
texte = Mid(texte, position + 3)
Wend
End Function

5 réponses

Tu n'as cas cree un parametre en plus a ta fonction est tant servir pour le revoie de la 2e variable

Ares
0
ok mais moi je ne sais faire qu'un truc comme ça :

variable1 = fonction(argument1, argument2)

alors comment faire pour faire "sortir" de la fonction une autre variable que variable1 ?

merci encore.
0
variable1 = fonction(argument1, argument2, variable2)

Dans le fct tu mets un truc du genre
variable2 = 12, par exemple donc dans le fct principale au momant de l'appelle aura :

var1 = fonction("Test", "VbFrance", var2)
msgbox var2

tu aura un boite de dialoge avec 12 fait un test tu vera

Ares

Si tu veux plus de détails mail-moi, car je n'aurais peut-être plus de temps de te répondre ce soir...
0
En utilisant un passage de variables par références, tu peux contourner ce problème : tu fais ta fonction ainsi :

Public Function MyFunc(arg1, arg2, ByRef result1, ByRef result2)

...
Result1 = ...
Result2 = ...
End Function

Ensuite lors de l'appel tu fais :

dim pop,oui,lom,pom
...
a=MyFunc(pop,oui,lom,pom)

dès lors, lom et pom contiennent les résultats que tu auras stocké dans la fonction.

Une autre solution dans le cas de chaînes simples de caractères est de les concaténer avec un séparateur (ex : ";"), puis d'utiliser la fonction Split pour récupérer les résultats...

a++

ceyquem www.lesiteweb.fr.st
0

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

Posez votre question
tu peu aussi utilsier un type
exemple :

'déclare ca en haut de tre form
Private Type Tmachin 'définition du type machin
    Couche As Integer
    Texte As string
End Type

'puis t'as fonction
Public Function findtag(ByVal texte As String, ByVal tagfin As String) As Tmachin 'fonction ki renvoi kelke chose du format de Tmachin

Dim temp As String, L1
While temp <> "tagfin"
position = InStr(1, texte, ">")
L1 = Left(texte, position + 1)
b = InStr(L1, "<")
temp = Mid(L1, b, 8)
layer = layer + L1
texte = Mid(texte, position + 3)
Wend

findtag.Couche = layer 'on entre les valeurs de la fonction
findtag.Texte = text

End Function

'ensuite tu récupère tes valers kom ca :
kelkechose = findtag(argument1, argument2).couche
'et
kelkechose = findtag(argument1, argument2).texte

'et voila



@+
Fabs 8-)
0
Rejoignez-nous