A voir également:
- Convertion string (calcul) en integer
- Calcul moyenne excel - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
commentcamarcheeay
Messages postés
667
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
20 avril 2010 à 18:39
20 avril 2010 à 18:39
Bonjour,
Ton code contient des erreurs. Et globalement il n'as pas de sens. On va le voir pas à pas :
> Dim nb As Integer
> Dim carac As String
> Dim res As String
> nb = RtbRes.TextLength
> For i As Integer = 1 To nb 'tu parcours tout le texte
> carac = Mid(RtbRes.Text, i, 1) 'tu extrait le caractère n° i
> res = res + carac 'les caractères que tu lit sont mis dans res
> Next 'à la fin, c'est comme si tu copiais le texte de RtbRes dans res Tu peux tout simplement remplacer tout ça par res = RtbRes.text
> res = CInt(res) 'Là il y a incompatibilité du type, res est String et CInt est Integer et ne converti que les entiers
> MsgBox(res)
Il va falloir réviser ton code. Mettre des conditions pour que seuls les chiffres soient copiés par exemple, et surtout, bien poser la problématique. Qu'est ce que tu veux entrer et qu'est ce que tu veux avoir en sortie.
Bon courage!
Ton code contient des erreurs. Et globalement il n'as pas de sens. On va le voir pas à pas :
> Dim nb As Integer
> Dim carac As String
> Dim res As String
> nb = RtbRes.TextLength
> For i As Integer = 1 To nb 'tu parcours tout le texte
> carac = Mid(RtbRes.Text, i, 1) 'tu extrait le caractère n° i
> res = res + carac 'les caractères que tu lit sont mis dans res
> Next 'à la fin, c'est comme si tu copiais le texte de RtbRes dans res Tu peux tout simplement remplacer tout ça par res = RtbRes.text
> res = CInt(res) 'Là il y a incompatibilité du type, res est String et CInt est Integer et ne converti que les entiers
> MsgBox(res)
Il va falloir réviser ton code. Mettre des conditions pour que seuls les chiffres soient copiés par exemple, et surtout, bien poser la problématique. Qu'est ce que tu veux entrer et qu'est ce que tu veux avoir en sortie.
Bon courage!
Merci de ta réponse
oui effectivement y'a du travail pour moi ^^
D'un autre coté c'est la première fois que je me lance dans le VB.net
Concernant la boucle en faite j'ai simplement oublié de la retiré (elle me servait lorsque je faisais divers test) et effectivement, il suffit juste de reprendre le contenu de la textbox.
Pour faire extrêmement simple, la textbox contient le calcul.
Je prends pour exemple 2+4.
Celui ci est du type string. Ce que je souhaite, c'est de pouvoir insérer le résultat du calcul dans une variable.(autrement dit 6 et pas "2+4")
Je remet le code plus propre:
Dim nb As Integer
Dim res As String
res = RtbRes.text
MsgBox(res)
(Effectivement c'est plus léger )
oui effectivement y'a du travail pour moi ^^
D'un autre coté c'est la première fois que je me lance dans le VB.net
Concernant la boucle en faite j'ai simplement oublié de la retiré (elle me servait lorsque je faisais divers test) et effectivement, il suffit juste de reprendre le contenu de la textbox.
Pour faire extrêmement simple, la textbox contient le calcul.
Je prends pour exemple 2+4.
Celui ci est du type string. Ce que je souhaite, c'est de pouvoir insérer le résultat du calcul dans une variable.(autrement dit 6 et pas "2+4")
Je remet le code plus propre:
Dim nb As Integer
Dim res As String
res = RtbRes.text
MsgBox(res)
(Effectivement c'est plus léger )
commentcamarcheeay
Messages postés
667
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
21 avril 2010 à 09:50
21 avril 2010 à 09:50
Bonjour
J'ai essayé de faire un programme pour approcher ce que tu cherches. J'ai fini par trouver un schéma de principe :
L'exemple suivant est fait sur une feuille simple (frmUser) contenant
- un texte : txtEq
- un bouton : cmdCalc
- un label : lblRes
Il permet de calculer des sommes et des différences. Par exemple "1+3" ou "-3+5-4+10-15"
Private Sub cmdCalc_Click()
....Dim v1, v2 As Integer
....Dim op As Integer
....Dim c As String
....
....op = 1
....For i = 1 To txtEq.TextLength
........c = Mid(txtEq.Text, i, 1)
........If IsNumeric(c) Then
............v1 = CInt(CStr(v1) & c)
........ElseIf c = "+" Then
............v2 = v2 + op * v1
............op = 1
............v1 = 0
........ElseIf c = "-" Then
............v2 = v2 + op * v1
............op = -1
............v1 = 0
........End If
....Next
....v2 = v2 + op * v1
....lblRes.Caption = v2
End Sub
Pour prendre en compte le reste des opérateurs et les parenthèses, il va falloir utiliser un niveau plus élevé d'intelligence artificielle et bien structurer le code pour ne pas s'y perdre.
J'ai essayé de faire un programme pour approcher ce que tu cherches. J'ai fini par trouver un schéma de principe :
L'exemple suivant est fait sur une feuille simple (frmUser) contenant
- un texte : txtEq
- un bouton : cmdCalc
- un label : lblRes
Il permet de calculer des sommes et des différences. Par exemple "1+3" ou "-3+5-4+10-15"
Private Sub cmdCalc_Click()
....Dim v1, v2 As Integer
....Dim op As Integer
....Dim c As String
....
....op = 1
....For i = 1 To txtEq.TextLength
........c = Mid(txtEq.Text, i, 1)
........If IsNumeric(c) Then
............v1 = CInt(CStr(v1) & c)
........ElseIf c = "+" Then
............v2 = v2 + op * v1
............op = 1
............v1 = 0
........ElseIf c = "-" Then
............v2 = v2 + op * v1
............op = -1
............v1 = 0
........End If
....Next
....v2 = v2 + op * v1
....lblRes.Caption = v2
End Sub
Pour prendre en compte le reste des opérateurs et les parenthèses, il va falloir utiliser un niveau plus élevé d'intelligence artificielle et bien structurer le code pour ne pas s'y perdre.