Utiliser une fonction définie par l'utilisateur

mortmen Messages postés 8 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 15 août 2010 - 12 févr. 2004 à 09:03
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 12 févr. 2004 à 09:16
Je suis en cours de réalisation d'un programme sous Visual Basic et j'ai un petit problem dans ma source. Voila a koi ça ressemble en gros :

text1.text = "2*Sin(x)" ' c'est un exemple, entré par l'utilisateur en temps normal mais c pour faire les tests
end sub

cmd1.click_()
x = 2
retourvaleur
text2.text = y
end sub

public function retourvaleur
y = text1.text
end function

Mon erreur se trouve dans la déclaration de la foncction ou VB veut mettre du texte dans la variable y et non une valeur

ma question est donc :
Quelle syntaxe dois-je utiliser pour que VB reconnaisse la fonction définit par l'utilisateur comme une fonction utilisable pour faire des calcul ?

merci à tout ceux qui peuvent m'apporter de l'aide !!

1 réponse

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
12 févr. 2004 à 09:16
Une fonction doit tout d'abord renvoyer un résultat :

Public Function retourValeur() As Long
...
retourValeur = valeur_a_retourner
End Function

ou alors, si tu veux que "y" soit une variable visible de partout, tu la définit en haut de ton module, et retourValeur devient une procédure :

Public Sub retourValeur()
...
End Sub

Ensuite, y=Text1.Text ne fonctionnera naturellement pas.

Text1.Text est une chaine de caractère. VB ne va jamais faire le calcul 2*Sin(x).

Il faut que tu examines la chaine, caractère par caractère pour pouvoir l'évaluer. Il y a pas mal de sources là dessus sur ce site.

Ex : "3 + 4"

il faut reconnaitre la chaine de caractère "3", la chaine de caractère "+" et la chaine de caratère "4", remarquer que le "+" se trouve entre le 3 et le 4, transformer les chaines de caractères en opérateurs et opérandes et effectuer le calcul.
(Idem pour le Sinus)

Bref, c'est un sacré boulot.

Manu
0
Rejoignez-nous