A voir également:
- Convertion string (calcul) en integer
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
4 réponses
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 )
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.