Calcul dans liste

cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009 - 27 juil. 2009 à 16:53
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009 - 3 août 2009 à 15:02
Bonjour,je cherche à ajouter dans ma liste,des cordonnées.Mais il faut que je fasse une moyenne entre les 2 coordonnées.J'ai 4 listes,une pour x1,une pour x2,une pour y1,une pour y2,et je voudrais faire la moyenne de x1 et x2 et de y1 et y2,mais je ne vois pas comment faire pour afficher le résultats directement dans un textbox,merci de m'aider.
Voici mon code :
       XPathDocument doc = new XPathDocument(filename);
            XPathDocument doc1 = new XPathDocument(filename1);
            XPathNavigator nav = doc.CreateNavigator();
            XPathNavigator nav1 = doc1.CreateNavigator();
            XPathNavigator nav2 = doc.CreateNavigator();
            XPathNavigator nav3 = doc.CreateNavigator();
            XPathNavigator nav4 = doc.CreateNavigator();
            XPathNavigator nav5 = doc.CreateNavigator();
            XPathExpression expr2;
            XPathExpression expr3;
            XPathExpression expr4;
            XPathExpression expr5;
            XPathExpression expr6;
            XPathExpression expr7;
            expr2 = nav.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/name");
            expr3 = nav1.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/name");
            expr4 = nav2.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/occurrences.22/occurrences/OccurrencePosCutting.13/x1");
            expr5 = nav3.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/occurrences.22/occurrences/OccurrencePosCutting.13/x2");
            expr6 = nav4.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/occurrences.22/occurrences/OccurrencePosCutting.13/y1");
            expr7 = nav5.Compile("/root.30/elements.9/elements/ElementExtractorMono.3/occurrences.22/occurrences/OccurrencePosCutting.13/y2");
            XPathNodeIterator ite2 = nav.Select(expr2);
            XPathNodeIterator ite3 = nav1.Select(expr3);
            XPathNodeIterator ite4 = nav2.Select(expr4);
            XPathNodeIterator ite5 = nav3.Select(expr5);
            XPathNodeIterator ite6 = nav4.Select(expr6);
            XPathNodeIterator ite7 = nav5.Select(expr7);
            ite2.MoveNext();
            ite3.MoveNext();
            ite4.MoveNext();
            ite5.MoveNext();
            ite6.MoveNext();
            ite7.MoveNext();
            XPathNavigator nodesnav = ite2.Current;
            XPathNavigator nodesnav1 = ite3.Current;
            XPathNavigator nodesnav2 = ite4.Current;
            XPathNavigator nodesnav3 = ite5.Current;
            XPathNavigator nodesnav4 = ite6.Current;
            XPathNavigator nodesnav5 = ite7.Current;
            List<string> liste1 = new List<string>();
            List<string> liste2 = new List<string>();
            List<string> liste3 = new List<string>();
            List<string> liste4 = new List<string>();
            List<string> liste5 = new List<string>();
            List<string> liste6 = new List<string>();
            int i 0, j 0, k = 0, l = 0, m = 0, n = 0;
            listView2.Clear();
            listView3.Clear();
            listView2.Columns.Add("Element", +150, HorizontalAlignment.Left);
            listView3.Columns.Add("Element", +150, HorizontalAlignment.Left);
            listView2.Columns.Add("Position longueur,hauteur", +145, HorizontalAlignment.Left);
            listView3.Columns.Add("Position longueur,hauteur", +145, HorizontalAlignment.Left);
                while (i < ite2.Count)
                {
                    liste1.Add(ite2.Current.Value);
                    i++;
                    ite2.MoveNext();
                }
                while (j < ite3.Count)
                {
                    liste2.Add(ite3.Current.Value);
                    j++;
                    ite3.MoveNext();
                }
                while (k < ite4.Count)
                {
                    liste3.Add(ite4.Current.Value);
                    k++;
                    ite4.MoveNext();
                }
                while (l < ite5.Count)
                {
                    liste4.Add(ite5.Current.Value);
                    l++;
                    ite5.MoveNext();
                } 
                while (m < ite6.Count)
                {
                    liste5.Add(ite6.Current.Value);
                    m++;
                    ite6.MoveNext();
                }
                while (n < ite7.Count)
                {
                    liste6.Add(ite7.Current.Value);
                    n++;
                    ite7.MoveNext();
                }
                foreach (string s in liste1)
                {
                    if (!liste2.Contains(s))
                    {
                        listView2.Items.Add(s.ToString());
                    }
                } 
                foreach (string r in liste2)
                {
                    if (!liste1.Contains(r))
                    {
                        listView3.Items.Add(r.ToString());
                    }
                }
                foreach (int t in liste3)
                {

                   
                }  

9 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 juil. 2009 à 10:16
Ton code ressemble juste à un parcours d'un fichier XML, je ne vois nulle part de Textbox ou de x1, x2, y1 ou y2...

Sinon, ce que tu semble demander, c'est :
maTextBox.Text = ((x1 + x2) / 2).ToString() + " / " + ((y1 + y2) / 2).ToString();


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
28 juil. 2009 à 10:48
Ce que je voudrais faire,c'est prendre les valeur de mes listes 3 et 4 et mes liste 5 et 6,faire la moyenne des 2 et ensuite ajouter cela dans la 2éme colonne de ma listview,et mon probléme et que je ne sais pas comment rajouter la moyenne de x1 et x2 et de y1 et y2 dans la 2 éme colonne de ma listview
0
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
28 juil. 2009 à 12:14
Mon autre soucis est que,j'ai 3 noeud de position pour un mot de la 1ére colonne de ma listeview,il faut donc que je fasse un saut de 2 noeud aprés avoir parcouru un noeud position de mon XML.
0
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
28 juil. 2009 à 16:45
Il ne faut pas tenir compte de mon msg précédent,par contre je ne suis toujours pas parvenu à ajouter dans ma 2 éme colonne de ma listview,(x1+x2)/2 et (y1+y2)/2...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
31 juil. 2009 à 12:39
est-ce que cette ligne de code est bonne?
expr4 = nav4.Compile("/root.30/elements.9/elements/ElementExtractorMono.3[name='s']/occurrences.22/occurrences/OccurrencePosCutting.13/y2");

C'est au niveau du [name='s'] que je pense avoir un soucis,mais je ne sais pas comment l'écrire,merci de m'aider.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
31 juil. 2009 à 13:54
Salut,
Je n'ai pas lu ton poste en détail, mais je me demande si tu ne pourrais pas simplifier tout ceci avec XPath (utiliser les fonctions sum & co) :
http://www.csharpfr.com/tutoriaux/XPATH-LANGUAGE_536.aspx


[hr]
-Blog-
-Site Perso-
0
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
31 juil. 2009 à 14:25
C'est justement là que j'ai vu qu'il fallait faire comme ça.Mais ça ne marche pas,donc je ne sais pas si je l'ai bien écrit.
expr4 = nav4.Compile("/root.30/elements.9/elements/ElementExtractorMono.3[name='s']/occurrences.22/occurrences/OccurrencePosCutting.13/y2"


Sachant que s est un string dans une liste
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
31 juil. 2009 à 18:30
Comment répondre sans connaître le fichier XML duquel on parle?



[hr]
-Blog-
-Site Perso-
0
cs_mathew77 Messages postés 46 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 25 août 2009
3 août 2009 à 15:02
Un bout de mon xml exemple :

<root.30>
3
<mature>0</mature>
2
<elements.9>
<elements>
<ElementExtractorMono.3>
<name>TTC_Total</name>
<elmType>0</elmType>
32
<minLen>5</minLen>
<maxLen>6</maxLen>
<charSet>.0123456789</charSet>
<mature>0</mature>
<occurrences.22>
<occurrences>
<OccurrencePosCutting.13>
<x1>0,9542</x1>
<x2>0,9839</x2>
<y1>0,6783</y1>
<y2>0,6869</y2>
<qualite>24</qualite>
<groupIDs>0:0:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1</groupIDs>
<curGroup>2</curGroup>
<myGroup>0</myGroup>
0,0000
0,0000
0,0000
0
3
<leftCutExp></leftCutExp>
<rightCutExp></rightCutExp>
<mature>0</mature>
</OccurrencePosCutting.13>
<OccurrencePosCutting.13>
<x1>0,4796</x1>
<x2>0,5143</x2>
<y1>0,8809</y1>
<y2>0,8898</y2>
<qualite>2</qualite>
<groupIDs>0:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1</groupIDs>
<curGroup>1</curGroup>
<myGroup>0</myGroup>
0,0000
0,0000
0,0000
0
1
<leftCutExp></leftCutExp>
<rightCutExp></rightCutExp>
<mature>0</mature>
</OccurrencePosCutting.13>
</occurrences>
</occurrences.22>
</ElementExtractorMono.3>
................
0
Rejoignez-nous