Convertir une chaine de caractères en nombre en vb.net

SvenJashen - 25 oct. 2012 à 13:59
 SvenJashen - 28 oct. 2012 à 16:09
Je voudrais connaitre le code VB d'une fonction qui me permettrait de convertir une chaine de 6 caractères en un nombre entier.
par exemple ,


textbox1.text = "6*(2+1)"
je voudrais convertir ces caractères en nombres , pour que ma variable nombre est pour valeur 18 , comment dois je m'y prendre ? 
merci de votre attention



rien .....pffff

7 réponses

DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 10
25 oct. 2012 à 14:47
je ne comprends rien


La Science est Grande et Vaste partageons cette connaisance
0
Utilisateur anonyme
25 oct. 2012 à 17:18
Bonjour,

Va voir là

Je te laisse le soin de terminer.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 oct. 2012 à 17:34
Bonjour,
Ce serait bien le diable si VB.Net ne pouvait (comme VB6) "recevoir" et utiliser le composant Microsoft Script Control.
Si oui (et j'en suis persuadé), voilà la syntaxe VB6 à transposer (facile) :
 Dim toto As String, titi As Double
  toto = "6*(2+1)"
  titi = ScriptControl1.Eval(toto)
  MsgBox titi


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 oct. 2012 à 17:39
Pour info : chez moi, cet activex a pour nom msscript.ocx
Si besoin (ne sais si c'est le même exactement) ====>>
Tapez le texte de l'url ici.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

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

Posez votre question
Utilisateur anonyme
26 oct. 2012 à 18:19
Bonjour,

Puisque nous n'avons pas eu de retour depuis la dernière réponse de ucfoutu et que le contôle en question n'est pas utilisable sur mon Windows 7 à 64 bits, je te donne ici le lien vers un article que j'ai trouvé en cherchant autre chose.
0
Salut ,

j'étais en voyage voilà pourquoi , je n'ai pu donner suite.
je vous remercie pour vos commentaires et votre aide.
finalement , j'ai pu trouver l'astuce
par exemple : je veux calculer combien me font "7*(2+1/3*(7+6)" et 7*(3+1)

voici les différentes étapes , enfin quelque une :


case de 7*(3+1)
1) d'abord avant de mettre la parenthèse ouvrante , je calcule la valeur du nombre n1
2) ensuite , lors de l'ajout de la parenthèse ouvrante , je vérifie d'abord si le nombre de parenthèse ouvrante est égal au nombre de parenthèse fermante .
je vais appeler gauche un integer qui compte : ( et droite compte :)

3) si gauche est égal à droite , alors avant d'ajouter la parenthèse ouvrante "(" , je pose une condition pour que tout ce qui va être saisi après soit mis dans un tableau,

alors tabnombre(0) va contenir 2+1/3* // mais à chaque fois que je mets un nouveau signe je calcule la nouvelle valeur de n1 , donc tabnombre(0) ne va contenir du texte mais plutôt un nombre , soit tabnombre(0) = 1
et un tableau de signe qui va contenir le signe juste avant la parenthèse . donc

tabsigne(0) = "*"

3) ensuite , avant la fermeture de la parenthèse ,
je recupère d'abord le dernier nombre " nombre qui vient juste après le dernier signe"
selon le signe , j'additionne , soustrait , multiplie ou divise à la valeur de tabnombre(0)

4) ensuite selon le signe de tabsigne(0) , je multiplie au nombre n1( nombre avant la première parenthèse.



pour calculer 7*(2+1/3*(7+6)

je fais à peu près les mêmes démarches , mais cette fois , il y'a un truc à faire de très important qui change.

d'abord avant de calculer 7*(2+1/3*(7+6) ou 7*(3*(6-8*4) il y'a des conditions à poser.

si vous remarquez bien ces nombres , ils ont une forme un peu identique , mais il y'a une configuration de calcul très différente pour les deux.

d'abord 7*(2+1/3*(7+6) , certes gauche > droite ( avant l'ajout de la deuxième parenthèse , il y'a déjà une première parenthèse , donc gauche > droite , si vous vous souvenez , gauche compte "(" et droite ")"

pour 7*(2+1/3*(7+6) , avant l'ajout de la deuxième parenthèse , il y'a plus de deux opérations :"+" , "/" , "*" , alors , quand il y'a plus de deux signes , il y'a une démarche particulière à effectuer.
ensuite , pour que sa marche , il y'a d'autres conditions à poser , !!!!!
d'abord , avant l'ajout de la parenthèse , verifier si le textebox est vide ou vaut zéro , alors le texte ="(" , si c'est pas le cas , alors , on ajoute au texte += "("
aussi j'ai posé , plein d'autres conditions ,





rien .....pffff
0
bonsoir

ucfoutu , merci pour ta méthode , elle me semble moins draconnienne à la mienne ,
mais dis , comment je fais pour importer scriptcontrol ?
pourrais avoir la déclaration ?

rien .....pffff
0
Rejoignez-nous