Deux sorties dans une fonction

Résolu
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 6 sept. 2005 à 15:55
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 8 sept. 2005 à 14:39
Bonjour à tous,

j'ai une fonction qui me donne la position d'un mot recherché dans une base de données. Je souhaiterais savoir si dans cette même fonction il est possible de faire sortir un autre résultat, par exemple la longueur du mot reconnu. Donc finalement, est-il possible qu'une fonction puisse sortir deux résultats ?
merci à vous.

8 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
6 sept. 2005 à 16:06
non, mais ca peut sortir une variable d'un type defini par toi mm

Private Type mot
position As Long
longueur As String
End Type


Private Function cherche(chaine As String, mot As String) As mot


cherche.longueur = Len(mot)
cherche.position = InStr(1, chaine, mot)


End Function


Private Sub Form_Load()
Dim MaRecherche As mot
MaRecherche = cherche("la tete a toto", "toto")
MsgBox MaRecherche.position & " " & MaRecherche.longueur
End Sub

sinon tu peux aussi simplement utiliser une sub

BasicInstinct
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 sept. 2005 à 16:08
Oui, avec une structure ou un type perso.



Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)

Une question se pose sur le forum, pas en privé


NH
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 sept. 2005 à 16:14
Ou passer des paramètres par référence et non plus par valeur.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
7 sept. 2005 à 09:34
OK merci à tous, je vais essayer ces solutions, car je n'ai pas tout compris, particulièrement le passage des paramètres : je ne vois pas comment ça fonctionne pratiquement.
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 sept. 2005 à 09:49
Ben au lieu de passer les paramètres par valeur (ByVal), tu les passe par référence :



Ta fonction :

Public Function GetPerson(ByRef Nom As String) As Integer



Let Nom = "Toto"

Let GetPerson = 18



End Function



Et pour l'appel à ta fonction :



Dim sNom As String

Dim iAge as Integer



Let iAge = GetPerson(sNom)



iAge contiendra : 18

sNom contiendra : "Toto"

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
7 sept. 2005 à 10:59
Cette solution peut m'être utile, mais le retour de la fonction ne porte pas sur l'entrée, je veux dire, c'est pas l'âge de toto qui m"interesse, mais
1) la présence ou non de "o" par ex. dans la chaîne "toto"
2) sa longueur.

En fait, ma fonction est comme ceci:

Function bonjour (texte as string) as integer
if instr("bonjour", texte) 1 then bonjour 1
end sub
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
7 sept. 2005 à 11:07
Désolé pour la mise en page, je passe parfois par mac et c'est pas bon.
En fait je voudrais quelque chose du genre:

Function bonjour (texte as string) as integerIf instr ("bonjour", texte) 1 then bonjour 1
lmot = len("bonjour")
end sub

et appeller en sortie à la fois bonjour et lmot.
Donc je vois pas bien où BY REF peut intervenir.
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
8 sept. 2005 à 14:39
Merci basicinstinct, j'ai adapté ta solution à mon problème et c'est très prometteur. Merci à darksidious, j'ai enfin pigé concrétement la différence entre byval et byref.
0
Rejoignez-nous