Sokhaaris
Messages postés2Date d'inscriptionsamedi 20 avril 2019StatutMembreDernière intervention21 avril 2019
-
Modifié le 20 avril 2019 à 18:25
Sokhaaris
Messages postés2Date d'inscriptionsamedi 20 avril 2019StatutMembreDernière intervention21 avril 2019
-
21 avril 2019 à 10:34
Bonjour,
J'ai un problème que j'essaye de résoudre depuis ce matin mais en vain.
J'ai un fichier texte d'une liste de fleurs avec ses caractéristiques (longueur pétale, largeur pétale ect.) comme suit par exemple :
J'ai réussi à lire le fichier et à afficher son contenu.
Je souhaite ensuite stocker les 4 premières valeurs de chaque ligne afin de pouvoir m'en servir plus tard.
Cependant, Visual Studio me dit que le format de chaine d'entree est incorrect.
J'ai réalisé des propriétés get pour chaque attribut, cependant mon constructeur est vide puisqu'il est inutile de créer une instance Fleur car toutes les valeurs dont j'ai besoin sont dans mon fichier txt.
Voici le code dans le main :
StreamReader reader = new StreamReader("iris.data"); string ligne = reader.ReadLine(); ; List<Fleur> liste_fl = new List<Fleur>(); while(ligne != null) { Console.WriteLine(ligne); string[] sousTab = ligne.Split(','); // On récupère les 5 éléments dans un tableau Fleur fl = new Fleur(); fl.Longueur_sepal = double.Parse(sousTab[0]); fl.Largeur_sepal = double.Parse(sousTab[1]); fl.Longueur_petal = double.Parse(sousTab[2]); fl.Largeur_petal = double.Parse(sousTab[3]); fl.Label = sousTab[4]; liste_fl.Add(fl); ligne = reader.ReadLine(); // On passe à la ligne suivante
} ligne = reader.ReadLine(); // On passe à la ligne suivante
Console.ReadKey();
Ici mon fichier est iris.data cependant il s'ouvre avec le bloc note donc je considère cela comme si c'était un txt.
L'erreur apparait lorsque le programme tente d'effectuer les double.Parse.
Je ne comprends pas l'erreur car mes attributs sont de type double. :(
Ton problème vient, très très certainement, du fait que le symbole décimal de ton ordinateur est la virgule, donc pour ton programme un texte qui représente un double doit contenir une virgule et non un point.
Voici un petit tuto que j’ai écrit sur le sujet, dans lequel tu trouveras plusieurs façons de gérer cette conversion
https://codes-sources.commentcamarche.net/faq/11316-conversion-de-string-en-nombre-en-net-c-et-vb-net
Sokhaaris
Messages postés2Date d'inscriptionsamedi 20 avril 2019StatutMembreDernière intervention21 avril 2019 21 avril 2019 à 10:34
D'accord très bien, je vais le lire et tenter de résoudre mon problème, merci !
21 avril 2019 à 10:34