Prise en compte d'une formule dans un textbox [Résolu]

Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
- - Dernière réponse : valorserty
Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
- 15 févr. 2006 à 20:17
j'ai crée un projet vb qui me permet de faire de l'aquisition de données grâce à un convertisseur analogique numérique sur deux voies d'aquisition. Sur l'une des voies j'ai l'image d'une tension et sur l'autre j'ai l'image du courant. Ces valeurs sont classées dans un tableau avant de faire l'objet d'une représentation graphique (mschart)
tableau(i,0) ; tableau(i,1) pour la tension
tableau(i,2) ; tableau(i,3) pour le courant.Comment peut-on faire avec l'aide d'une textbox pour calculer par exemple P u*i ou P 250*i^2 pour pouvoir représenter graphiquement le résultat de ma formule. L'idée serait de dévelloper une prise de formule à partir d'une textbox pour pouvoir faire des opérations mathématiques variées sur mes deux grandeurs physiques (Elles peuvent être très différentes d'une aquisition à l'autre, u,i,T, x....)
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
3
Merci
Non, je ne crois pas que ça puisse le faire. Tu peux essayer ça :

Dim r() As String
Dim s As String
Dim resultat As Double


'ta chaine saisie dans la textbox
s = "u*i"

'on remplace les lettres par leur valeur
s = Replace(s, "u", tableau(i, 1))
s = Replace(s, "i", tableau(i, 3))

'on découpe la chaine suivant le séparateur '*'
r = Split(s, "*")

'on calcule en convertissant le texte en double
resultat = CDbl(r(0)) * CDbl(r(1))

MsgBox resultat

Sinon, tu peux toujours tenter ta chance avec ce code, en l'adaptant) :
http://www.vbfrance.com/code.aspx?ID=22816

Mais je ne suis pas persuadé que ça fonctionne dans ton cas.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
0
Merci
Désolé,
je me rends compte que j'ai oublié de dire bonjour à tous et merci pour les toutes réponses qui seraient les bienvenues.
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Salut,

Comme j'ai commencé par l'électronique (il y a longtemps), j'ai bien envie de t'aider (surtout que je comprend encore tes formules). Seulement, il me faudrait quelques précisions.

Si j'ai bien compris, hors ta méthode d'acquisition, les données en entrée se trouvent dans un tableau du genre Tableau(x,y) où x est le nombre de lignes et y le nombre de colonnes.
Ce que je ne comprend pas c'est pourquoi 2 colonnes (0 et 1) pour la tension et 2 colonnes (2 et 3) pour le courant.

A part ça, pour une prise de formule, dans ce cas, vaut mieux éviter la textbox (trop d'erreurs possibles à gérer).
Finalement le nombre de formules possibles est assez limité en tous cas plus limité que celui des erreurs. Je verrai donc plutôt l'utilisation d'une combobox ou d'une listbox pour les lister. Et orienter le calcul suivant l'item cliqué.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
0
Merci
salut canislupus

Effectivement les données en entrée se trouvent dans un tableau du genre Tableau(x,3) où x+1 est le nombre de lignes et 3+1 le nombre de colonnes.
2 colonnes (0 et 1) pour la tension avec tableau(i,0) pour les abscisses i de mon point d'acquisition et tableau(i,1) pour les ordonnées correspondantes de mon point d'acquisition
2 colonnes (2 et 3) pour le courant avec le même principe tableau (i,2) pour les abscisses et tableau(i,3) pour les ordonnées. ( remarque: tableau(i,0)=tableau(i,2) méthode plus simple pour moi pour utiliser mschart avec tracé des 2 courbes simultanées)

Mais je tiens à préciser qu'il me faudrait, à partir d'une textbox, pouvoir faire des opérations mathématiques à partir des 2 grandeurs d'entrées qui ont fait l'objet d'une acquisition. J'ai pris l'exemple de la tension et du courant en acquisition et de la puissance, non pas en acquisition, mais déduite d'un calcul mathématique engendré par une formule donnée dans la texbox (P =u*i)
Cela pourrait aussi s'appliquer à d'autres grandeurs d'entrées comme la pression et la hauteur de liquide et ainsi déduire grâce à une formule introduite dans ma textbox, la masse volumique de mon fluide.
Les exemples ne doivent pas être limités à ceux que l'on peut introduire dans une combobox.
Comment faire donc pour identifier une chaîne de caractères dans une textbox
(quelle est l'instruction)
merci pour avoir eu le courage de lire ce paté.
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Ok, donc je vais me répéter, faire confiance à une saisie de formule dans une textbox c'est très aléatoire. D'ailleurs, en règle générale, il ne faut JAMAIS faire confiance à la saisie d'un utilisateur.

Sinon, identifier un "U" dans une chaîne c'est facile :

pos = instr(textbox.text,"U")

S'il y a un "U" dans ta chaîne, pos sera > 0 mais ça peut être le "U" de "U*I" ou de "Ursule" ou de n'importe quelle saisie contenant un "U".

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
0
Merci
salut
merci pour ta réponse.
J'ai une autre question toujours en rapport avec mon problème.
Voila, j'ai réussi à convertir la formule P = u*i, tapée dans la textbox, en une chaîne de carractères tableau(i,1)*tableau(i,3) .
Je rappelle u est contenu dans tableau (i,1) et i dans tableau(i,3)
Cette châine de carractères se nomme caract. Donc quand j'effectue msgbox caract , il m'écrit : tableau(i,1)*tableau(i,3) . Parfait. Mais ce qui m'interesse c'est de savoir si il serait possible d'exécuter le contenu de caract dans une boucle du genre :
for i = 0 to x
tabformule(i,1) = caract ' il doit tenir compte de tableau(i,1)*tableau(i,3) et non pas de caract lui même
Merci pour tes conseils
Messages postés
11
Date d'inscription
vendredi 20 janvier 2006
Dernière intervention
6 mai 2008
0
Merci
merci pour l'info, je vais essayer de voir si je peux en tirer quelque chose.

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.