Пример #1
0
        private void importerReseauEmme2ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            projet.reseaux.Add(new network());
            int num_res;
            string i;
            int ii;
            bool ci = false;
            float timau = 0, xi, yi;
            string chaine, carte = "";
            string[] ch;

            //System.IO.StreamWriter resultat = new System.IO.StreamWriter("c:\\temp\\result.txt");
            //network reseau = new network();
            //network reseau = new network();
            projet.reseau_actif = projet.reseaux.Count - 1;
            num_res = projet.reseaux.Count - 1;
            openFileDialog1.ShowDialog();
            string nom_reseau = openFileDialog1.FileName;
            if (System.IO.File.Exists(nom_reseau))
            {
                System.IO.StreamReader fichier_reseau = new System.IO.StreamReader(nom_reseau);
                projet.reseaux[num_res].matrices.Add(new matrix());
                do
                {

                    projet.reseaux[num_res].nom = System.IO.Path.GetFileNameWithoutExtension(nom_reseau);
                    chaine = fichier_reseau.ReadLine();
                    if (chaine == null) { goto lecture; }
                    if (chaine == "" || chaine.Substring(0, 1) == " ") { goto lecture; }

                    if (chaine.Substring(0, 1) == "c") { goto lecture; }
                    string[] param ={ " " };

                    if (chaine.Substring(0, 7) == "t nodes" || chaine.Substring(0, 7) == "t links")
                    {
                        carte = chaine.Substring(0, 7);
                        goto lecture;

                    }

                    //inserer noeuds//
                    if (carte == "t nodes")
                    {
                        ch = chaine.Split(param, System.StringSplitOptions.RemoveEmptyEntries);

                        i = ch[1];
                        xi = System.Convert.ToSingle(ch[2]);
                        yi = System.Convert.ToSingle(ch[3]);
                        //emcombrement du reseau
                        if (xi > projet.reseaux[num_res].xu)
                        {
                            projet.reseaux[num_res].xu = xi;
                        }
                        if (xi < projet.reseaux[num_res].xl)
                        {
                            projet.reseaux[num_res].xl = xi;
                        }
                        if (yi > projet.reseaux[num_res].yu)
                        {

                            projet.reseaux[num_res].yu = yi;

                        }
                        if (yi < projet.reseaux[num_res].yl)
                        {
                            projet.reseaux[num_res].yl = yi;
                        }

                        if (ch[0] == "a*")
                        {
                            ci = true;

                        }
                        else
                        { ci = false; }

                        node ni = new node();
                        node nul = new node();
                        int value;

                        ni.i = i;
                        ni.x = xi;
                        ni.y = yi;
                        ni.ci = ci;
                        ni.is_visible = true;
                        if (projet.reseaux[num_res].numnoeud.TryGetValue(i, out value) == false)
                        {
                            projet.reseaux[num_res].numnoeud.Add(i, projet.reseaux[projet.reseau_actif].nodes.Count);
                            projet.reseaux[num_res].nodes.Add(ni);
                        }

                    }
                    //inserer liens
                    else if (carte == "t links")
                    {
                        ch = chaine.Split(param, System.StringSplitOptions.RemoveEmptyEntries);

                        link lien = new link();
                        lien.no = projet.reseaux[num_res].numnoeud[ch[1]];
                        lien.nd = projet.reseaux[num_res].numnoeud[ch[2]];
                        lien.longueur = System.Convert.ToSingle(ch[3]); ;
                        lien.modes = ch[4].ToString();
                        lien.type = ch[5].ToString(); ;
                        lien.lanes = System.Convert.ToSingle(ch[6]); ;
                        lien.vdf = (int)System.Convert.ToSingle(ch[7]); ;
                        lien.temps = timau;
                        switch (lien.vdf)
                        {
                            case 1:
                                lien.v0 = 130f;
                                lien.a = 1.03f;
                                lien.b = 0.94f;
                                lien.n = 8f;
                                break;
                            case 2:
                                lien.v0 = 110f;
                                lien.a = 1.03f;
                                lien.b = 0.94f;
                                lien.n = 8f;
                                break;
                            case 4:
                                lien.v0 = 120f;
                                lien.a = 1.03f;
                                lien.b = 0.94f;
                                lien.n = 8f;
                                break;
                            case 3:
                                lien.v0 = 90f;
                                lien.a = 1.03f;
                                lien.b = 0.94f;
                                lien.n = 8f;
                                break;
                            case 24:
                                lien.v0 = 90f;
                                lien.a = 1.1f;
                                lien.b = 0.5f;
                                lien.n = 8f;
                                break;
                            case 5:
                                lien.v0 = 90f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 16:
                                lien.v0 = 80f;
                                lien.a = 1.21f;
                                lien.b = 0.56f;
                                lien.n = 8f;
                                break;
                            case 6:
                                lien.v0 = 70f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 9:
                                lien.v0 = 70f;
                                lien.a = 1.03f;
                                lien.b = 0.94f;
                                lien.n = 8f;
                                break;
                            case 18:
                                lien.v0 = 70f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 19:
                                lien.a = 60f;
                                lien.b = 1.08f;
                                lien.n = 0.64f;
                                break;
                            case 14:
                                lien.v0 = 60f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 13:
                                lien.v0 = 60f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 10:
                                lien.v0 = 50f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 12:
                                lien.v0 = 50f;
                                lien.a = 1.08f;
                                lien.b = 0.64f;
                                lien.n = 8f;
                                break;
                            case 32:
                                lien.v0 = 50f;
                                lien.a = 1.21f;
                                lien.b = 0.56f;
                                lien.n = 8f;
                                break;
                            case 7:
                                lien.v0 = 40f;
                                lien.a = 1.21f;
                                lien.b = 0.56f;
                                lien.n = 8f;
                                break;
                            case 28:
                                lien.v0 = 40f;
                                lien.a = 1.1f;
                                lien.b = 0.5f;
                                lien.n = 8f;
                                break;
                            case 31:
                                lien.v0 = 30f;
                                lien.a = 1.21f;
                                lien.b = 0.56f;
                                lien.n = 8f;
                                break;
                            default:
                                lien.v0 = 1f;
                                lien.a = 0f;
                                lien.b = 0f;
                                lien.n = 0f;
                                break;

                        }

                        lien.touche = 0;
                        lien.cout = -1;
                        projet.reseaux[num_res].links.Add(lien);
                        //        MessageBox.Show(lien.no.ToString()+" "+lien.nd.ToString());
                    }

                lecture: ;

                } while (fichier_reseau.EndOfStream == false);
                fichier_reseau.Close();

                //construction du graphe
                // table des prédécesseurs et successeurs de noeuds
                for (ii = 0; ii < projet.reseaux[projet.reseau_actif].links.Count; ii++)
                {
                    turn virage = new turn();
                    virage.numero = ii;
                    virage.temps = 0;
                    //virage.cout = 0;
                    //virage.distance=0;

                    projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].nd].pred.Add(virage.numero);
                    projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].no].succ.Add(virage.numero);
                    //                    Console.SetCursorPosition(1, Console.CursorTop-1);

                }
                // table des prédécesseurs et successeurs de tronçons
              //  Console.WriteLine("création de la topologie des noeuds terminée");
               /* for (ii = 0; ii < projet.reseaux[projet.reseau_actif].links.Count; ii++)
                {
                    for (j = 0; j < projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].no].pred.Count; j++)
                    {
                        turn virage = new turn();
                        projet.reseaux[projet.reseau_actif].links[ii].arci.Add(virage);
                        projet.reseaux[projet.reseau_actif].links[ii].arci[j].numero = projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].no].pred[j];

                    }
                    for (j = 0; j < projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].nd].succ.Count; j++)
                    {
                        turn virage = new turn();
                        projet.reseaux[projet.reseau_actif].links[ii].arcj.Add(virage);
                        projet.reseaux[projet.reseau_actif].links[ii].arcj[j].numero = projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[ii].nd].succ[j];

                    }

                }*/

            }
        }
Пример #2
0
        private void importerReseauAccessibiliteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i; //j;
            string[] param ={ " " };
            projet.reseaux.Add(new network());
            int num_res;

            string chaine;
            string[] ch;

            projet.reseau_actif = projet.reseaux.Count - 1;
            num_res = projet.reseaux.Count - 1;
            openFileDialog1.ShowDialog();
            string nom_reseau = openFileDialog1.FileName;

            if (System.IO.File.Exists(nom_reseau))
            {
                System.IO.StreamReader fichier_reseau = new System.IO.StreamReader(nom_reseau);
                projet.reseaux[num_res].matrices.Add(new matrix());

                projet.reseaux[projet.reseau_actif].nom = System.IO.Path.GetFileNameWithoutExtension(nom_reseau);
                while (fichier_reseau.EndOfStream == false)
                {

                    chaine = fichier_reseau.ReadLine();

                    ch = chaine.Split(param, System.StringSplitOptions.RemoveEmptyEntries);

                    {
                        node nul = new node();
                        node nodei = new node();
                        node nodej = new node();
                        string ni = ch[0];
                        nodei.i = ni;
                        int value;
                        if (projet.reseaux[projet.reseau_actif].numnoeud.TryGetValue(ni, out value) == false)
                        {
                            projet.reseaux[projet.reseau_actif].numnoeud.Add(ni, projet.reseaux[projet.reseau_actif].nodes.Count);
                            projet.reseaux[projet.reseau_actif].nodes.Add(nodei);
                        }
                        string nj = ch[1];

                        nodej.i = nj;
                        if (projet.reseaux[projet.reseau_actif].numnoeud.TryGetValue(nj, out value) == false)
                        {
                            projet.reseaux[projet.reseau_actif].numnoeud.Add(nj, projet.reseaux[projet.reseau_actif].nodes.Count);
                            projet.reseaux[projet.reseau_actif].nodes.Add(nodej);
                        }

                        link lien = new link();
                        lien.no = projet.reseaux[projet.reseau_actif].numnoeud[ni];
                        lien.nd = projet.reseaux[projet.reseau_actif].numnoeud[nj];
                        lien.temps = Convert.ToSingle(ch[2]);
                        lien.longueur = Convert.ToSingle(ch[3]);
                        projet.reseaux[projet.reseau_actif].links.Add(lien);

                    }
                }
                fichier_reseau.Close();

                //construction du graphe
                // table des prédécesseurs et successeurs de noeuds
                for (i = 0; i < projet.reseaux[projet.reseau_actif].links.Count; i++)
                {
                    turn virage = new turn();
                    virage.numero = i;
                    virage.temps = 0;
                    //virage.distance = 0;
                    //virage.cout = 0;

                    projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].nd].pred.Add(virage.numero);
                    projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].no].succ.Add(virage.numero);
                    //                    Console.SetCursorPosition(1, Console.CursorTop-1);

                }

                // table des prédécesseurs et successeurs de tronçons
                //Console.WriteLine("création de la topologie des noeuds terminée");
             /*  for (i = 0; i < projet.reseaux[projet.reseau_actif].links.Count; i++)
                {
                    for (j = 0; j < projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].no].pred.Count; j++)
                    {
                        turn virage = new turn();
                        int predecesseur = projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].no].pred[j];
                        {
                            virage.numero = predecesseur;
                            projet.reseaux[projet.reseau_actif].links[i].arci.Add(virage);
                        }

                    }
                    for (j = 0; j < projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].nd].succ.Count; j++)
                    {
                        turn virage = new turn();
                        int successeur = projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].nd].succ[j];
                        {
                            virage.numero = successeur;
                            projet.reseaux[projet.reseau_actif].links[i].arcj.Add(virage);
                        }

                    }

                                        avancement.textBox1.Text = i.ToString() + " " + projet.reseaux[projet.reseau_actif].nodes[projet.reseaux[projet.reseau_actif].links[i].nd].succ.Count.ToString();
                                        avancement.progressBar1.Value = (100 * i / projet.reseaux[projet.reseau_actif].links.Count);
                                        avancement.Refresh();

                }*/

            }
        }