示例#1
0
 public void agregarContinente(Continente continente)
 {
     this.listaContinentes.Add(continente);
 }
        public void crearGrafico()
        {
            Grafica pruebaGrafo = new Grafica(Lista_de_Tokens[5].GetValor.Trim(new Char[] { '"' }));

            try
            {
                int estado = 0;
                if (pasoLibre)
                {
                    for (int i = 0; i < Lista_de_Tokens.Count; i++)
                    {
                        switch (estado)
                        {
                        case 0:
                            /*
                             * Verificamos si es un continente
                             */
                            if (Lista_de_Tokens[i].GetValor.Equals("Continente"))
                            {
                                pruebaContinente = new Continente(Lista_de_Tokens[i + 5].GetValor.Trim(new Char[] { '"' }));

                                estado = 1;

                                /*
                                 * pasamos a los paises del continente
                                 */
                            }
                            break;

                        case 1:
                            /*
                             * Verificamos los paises que tenga ese continente
                             */
                            if (Lista_de_Tokens[i].GetValor.Equals("Pais"))
                            {
                                estado = 2;

                                /*
                                 * despues de encontrar un pais, verificamos sus atriubutos
                                 */
                            }
                            else if (Lista_de_Tokens[i].GetValor.Equals("}"))
                            {
                                /*
                                 * SI ya no hay mas paises, regresamor a ver si existe otro continente
                                 */
                                pruebaGrafo.agregarContinente(pruebaContinente);
                                estado = 0;
                            }
                            break;

                        case 2:
                            /*
                             * Verificamos todos los atributos que contengan el pais
                             */
                            if (Lista_de_Tokens[i].GetValor.Equals("Nombre"))
                            {
                                nombrePais = Lista_de_Tokens[i + 2].GetValor.Trim(new Char[] { '"' });
                                estado     = 2;
                            }
                            else if (Lista_de_Tokens[i].GetValor.Equals("Poblacion"))
                            {
                                pobla  = int.Parse(Lista_de_Tokens[i + 2].GetValor);
                                estado = 2;
                            }
                            else if (Lista_de_Tokens[i].GetValor.Equals("Saturacion"))
                            {
                                satura = int.Parse(Lista_de_Tokens[i + 2].GetValor);
                                estado = 2;
                            }
                            else if (Lista_de_Tokens[i].GetValor.Equals("Bandera"))
                            {
                                bandera = Lista_de_Tokens[i + 2].GetValor.Trim(new Char[] { '"' });
                                estado  = 2;
                            }
                            else if (Lista_de_Tokens[i].GetValor.Equals("}"))
                            {
                                /*
                                 * si ya no hay mas atributos, ingresamos el pais al continente
                                 * y regresamos a ver si hay mas continentes
                                 */
                                pruebaContinente.AgregarPais(new Pais(nombrePais, pobla, satura, bandera));
                                estado = 1;
                            }
                            break;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("\n Algo salio mal en el analisis");
                }

                /*
                 * Seteamos los valores de los atributos del pais a un estado neutral
                 */
                nombrePais = "";
                bandera    = "";
                satura     = 0;
                pobla      = 0;


                /*
                 * Escribimos el archivo .dot
                 */
                File.WriteAllText(Application.StartupPath + '\\' + "grafica.dot", pruebaGrafo.ObtenerDot());

                /*
                 * Creamos el grafo a partir del archivo .dot escrito
                 */
                pruebaGrafo.creacionGrafica();
            }

            catch { }
        }