VB.Net Fonction Split [Résolu]

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Salut à tous...

J'ai un petit problème avec la fonction Split....

Je veux seulement aller chercher une information dans un tableau qui contient une ligne avec 4 élément séparer par des espaces...

Ligne de mon Tableau =
6,6 8,6 9,3 6,0
Separateur = " "
Mon TableauLigne est en String
Mes autres varaibles (LigneCoordX1 , LigneCoordX2, LigneCoordY1 et LigneCoordY2)
sont en Single.

Je n'ai aucun problème à récupérer le résulta de la varianle LigneCoordX1 (6,6)
Mais ca Bug à la ligne suivant (ligne en Gras et souligné)

Voyez-vous pourquoi ????

Merci de votre aide

LigneCoordX1 = Convert.ToSingle(TableauLigne(j).Split(Separateur)(0))
LigneCoordX2 = Convert.ToSingle(TableauLigne(j).Split(Separateur)(1))
LigneCoordY1 = Convert.ToSingle(TableauLigne(j).Split(Separateur)(2))
LigneCoordY2 = Convert.ToSingle(TableauLigne(j).Split(Separateur)(3))

1 réponse

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
salut,

Voici la façon propre de faire ce que tu cherches
En utilisant les import qui faut tu peux alleger le code

Sinon une facon sale est de faire un replace "," --> "."

c'est comme tu veux


Dim LigneCoordX1 As Single
Dim LigneCoordX2 As Single
Dim LigneCoordY1 As Single
Dim LigneCoordY2 As Single
Dim Separateur As String = " "
Dim TableauLigne As String = "6,6 8,6 9,3 6,0"
Dim oldprovider As System.Globalization.NumberFormatInfo

Dim N As Globalization.NumberFormatInfo = Globalization.CultureInfo.CurrentCulture.NumberFormat.Clone
Dim c As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture.Clone
Dim oldsep As String = c.NumberFormat.NumberDecimalSeparator
c.NumberFormat.NumberDecimalSeparator = ","
Threading.Thread.CurrentThread.CurrentCulture = c


oldprovider = System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ","
LigneCoordX1 = Convert.ToSingle(TableauLigne.Split(Separateur)(0))
LigneCoordX2 = Convert.ToSingle(TableauLigne.Split(Separateur)(1))
LigneCoordY1 = Convert.ToSingle(TableauLigne.Split(Separateur)(2))
LigneCoordY2 = Convert.ToSingle(TableauLigne.Split(Separateur)(3))

c.NumberFormat.NumberDecimalSeparator = oldsep
Threading.Thread.CurrentThread.CurrentCulture = c