cs_cordiste
Messages postés6Date d'inscriptionsamedi 9 décembre 2000StatutMembreDernière intervention 6 mai 2008
-
5 mai 2008 à 23:34
oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009
-
6 mai 2008 à 19:12
Bonsoir à tous,
Je débute en c#, et je viens vers vous à la recherche d'une peu d'aide.
J'ai la chaine suivante :
0.1234567891000.9
dans laquelle je souhaire récupérer les valeurs numériques afin de réaliser une opération mathématique sur chaque valeur, puis les remplacer par le nouveau résultat.
J'ai réussi (difficilement) à écrire ceci afin de récupérer les valeur dans un tableau :
string str = " 0.123456789 1000.9";
Regex regex = new Regex(@"(?[0-9.]+)");
MatchCollection matches = regex.Matches(str);
Je bloque maintenant sur le "parsage" pour pouvoir réaliser une opération mathématique sur ces données et la façon la plus propre de réinjecter le résultat dans la chaîne de base.
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 6 mai 2008 à 17:03
Mais... Comment dire... c'est juste de l'affichage lol! Met un breakpoint tu verras que tu as bien un flottant 0.9, avec lequel tu peux faire tes opérations...
oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009 5 mai 2008 à 23:54
C'est pas plus simple en traitant ca comme de l'xml ?
voilà un début de code d'un vieux bout de code pour te donner une idée :
XmlDocument lXmlDoc = new XmlDocument();
lXmlDoc.Load(lsMonFichierXml);
XmlNodeList lNodeListe = lXmlDoc.DocumentElement.ChildNodes;
foreach (XmlNode lNode in lNodeListe)
{
string lsValeur = lNode.Attributes["balise"].InnerText;
}
lXmlDoc = null;
oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009 6 mai 2008 à 10:57
ok c'est pas du xml ... je serais toi je le ferai par etape effectivment avec des regex :
Tu vire les deux
tu fait un RegEx.Split(lsChaine,"");
tu va récupérer les lignes et après avec un ("([\.,0-9]*") et avec les matches tu récupères toutes valeurs.
Voilà en gros comment je ferai (si c'est pas de l'xml je précise)
cs_cordiste
Messages postés6Date d'inscriptionsamedi 9 décembre 2000StatutMembreDernière intervention 6 mai 2008 6 mai 2008 à 14:05
@ oximoron Je viens d'essayer ton approche. J'arrive au même résultat... c'est à dire dans une impasse sombre.
Dans mon message précédant j'ai écrits : "buddathemaster : Ta piste est certainement la bonne", je précise que je parlais de la piste qu'il fallait que j'explore. En aucun cas il n'y a de comparaison avec les pistes proposées. A la relecture et comme les messages se sont croisés cela ne me semble un peu confus... c'est regex qui m'embrume."
Vos différentes pistes me font donc progresser... jusqu'à cette impasse : Comment parser ma string pour obtenir le . (point)?
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 6 mai 2008 à 15:40
Honnetement, du parse à partir de nombres US (avec un . en séparateur donc), j'en ai plein à parser dans un de mes programmes, et j'utilise très exactement le parse avec la culture en-US comme je t'ai mis. Je me demande comment tu fais pour récupérer 09 (tu veux dire 9?) et pas 0,9 ????