cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
28 mars 2011 à 17:44
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
29 mars 2011 à 16:17
Bonjour à tous
un problème avec ce code
le bug
Double.Parse(element.ToString) ne reconnait le dernier caractère de str 0
Private polynom As New List(Of String)
Sub parsepolynum()
Dim str() As Char
Dim nombre As String
Dim flagnombre As Boolean
' str = polynum.Text.ToCharArray
str = "12x^2+3x^0".ToCharArray
nombre = String.Empty
flagnombre = False
For Each element As Char In str
Try
If Double.Parse(element.ToString) Then
flagnombre = True
nombre &= element.ToString
End If
Catch ex As Exception
If flagnombre Then
polynom.Add(nombre)
End If
flagnombre = False
polynom.Add(element.ToString)
nombre = String.Empty
End Try
Next
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 29 mars 2011 à 07:31
Inutile de mettre ToCharArray ni autant de ToString...
évitons également les exceptions hormis les cas de gestion d'erreur.
nettoyons donc cela :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each token As String In Parse("12x^2+3x^0")
MessageBox.Show(token)
Next
End Sub
Function Parse(ByVal Polyome As String) As List(Of String)
Dim nombre As String = String.Empty
Dim chiffre As Integer
Parse = New List(Of String)
For Each caractere As Char In Polyome
If Integer.TryParse(caractere, chiffre) Then
nombre &= caractere
Continue For
ElseIf nombre.Length Then
Parse.Add(nombre)
nombre = String.Empty
End If
Parse.Add(caractere)
Next
If nombre.Length Then
Parse.Add(nombre)
End If
End Function