public Viajero buscarViajeroEnTexto(string nombre) { string line; StreamReader file = new StreamReader(RutaViajeros); while ((line = file.ReadLine()) != null) { string[] datos = line.Split('\t'); if ((datos[2] + " " + datos[1]).ToLower().Equals(nombre.ToLower())) { Viajero v = new Viajero(datos[0], datos[2] + " " + datos[1]); string[] ciudades = datos[3].Split(','); for (int j = 0; j < ciudades.Length; j++) { Ciudad c = buscarCiudad(ciudades[j].Split('_')[1]); if (c != null) { v.agregarCiudad(c); } } if (buscarViajero(v.Nombre) == null) { agregarViajero(v); } return(v); } } return(null); }
public List <Viajero> cargarViajerosInsercion(DataGridView tabla, ProgressBar barra, Label etiqueta, String ruta, int nlinea) { int nlin = 0; int nfin = nlinea + paginas[paginas.Count - 1].NlineaFinal; RutaViajeros = ruta; string line; StreamReader file = new StreamReader(RutaViajeros); while ((line = file.ReadLine()) != null) { if (nlin == nlinea) { for (int i = nlin; i < nfin && line != null; i++) { string[] datos = line.Split('\t'); Viajero v = new Viajero(datos[0], datos[2] + " " + datos[1]); string[] ciudades = datos[3].Split(','); for (int j = 0; j < ciudades.Length; j++) { Ciudad c = buscarCiudad(ciudades[j].Split('_')[1]); if (c != null) { v.agregarCiudad(c); } } if (v.Grafo.Vertices.Count > 0) { viajerosSolucionInsercion.Add(v); v.generarSolucionInsercion(); } tabla.Invoke((MethodInvoker) delegate { tabla.Rows.Add(v.Codigo, v.Nombre); tabla.Rows[tabla.Rows.Count - 1].Selected = true; tabla.CurrentCell = tabla.Rows[tabla.Rows.Count - 1].Cells[0]; }); int porcentaje = (i * 100) / nfin; barra.Invoke((MethodInvoker) delegate { barra.Value = porcentaje; }); etiqueta.Invoke((MethodInvoker) delegate { etiqueta.Text = porcentaje + "%"; }); line = file.ReadLine(); } break; } else { nlin++; continue; } } return(viajerosSolucionFuerzaBruta); }
//Constructor public Aerolinea() { paginaActual = 1; viajeros = new List <Viajero>(); viajerosSolucionKruskal = new List <Viajero>(); viajerosSolucionFuerzaBruta = new List <Viajero>(); viajerosSolucionInsercion = new List <Viajero>(); ciudades = new Dictionary <string, Ciudad>(); lineaActual = 0; viajeroAnonimo = new Viajero(CODIGO_DEFAULT, NOMBRE_DEFAULT); //cargarParginas(PaginasTotales); }
public void cargarViajeros(String ruta, int nlinea) { viajeros.Clear(); int nlin = 0; int nfin = nlinea + Viajero.NUMERO_A_CARGAR; RutaViajeros = ruta; string line; StreamReader file = new StreamReader(RutaViajeros); while ((line = file.ReadLine()) != null) { if (nlin == nlinea) { for (int i = nlin; i < nfin && line != null; i++) { string[] datos = line.Split('\t'); Viajero v = new Viajero(datos[0], datos[2] + " " + datos[1]); string[] ciudades = datos[3].Split(','); for (int j = 0; j < ciudades.Length; j++) { Ciudad c = buscarCiudad(ciudades[j].Split('_')[1]); if (c != null) { v.agregarCiudad(c); } } if (v.Grafo.Vertices.Count > 0) { agregarViajero(v); } line = file.ReadLine(); } break; } else { nlin++; continue; } } }
//busca viajeros que concuerden con el nombre o con el apellido y los agrega a la lista, si encuentra // un viajero que concuerde con el nombre y apellido juntos, elimina todo lo que habia en la lista y agrega // el viajero que concordó con el nombre completo, y de alli solo sigue buscando viajeros que concuerden con // el nombre completo por si llegara a haber mas viajeros con el nombre completo public List <Viajero> buscarViajeros(string nomViajero) { if (registroTemp.Count > 0) { for (int i = 0; i < registroTemp.Count; i++) { viajeros.Remove(registroTemp.ElementAt(i).Id); } registroTemp.Clear(); } List <Viajero> lista = new List <Viajero>(); string line; System.IO.StreamReader file = new System.IO.StreamReader(rutaViajeros); while ((line = file.ReadLine()) != null) { string[] linea = line.Split('\t'); string id = linea.ElementAt(0); if (!viajeros.ContainsKey(id)) { string apellido = linea.ElementAt(1); string nombre = linea.ElementAt(2); string nombreCompleto = nombre + " " + apellido; Boolean encontroNomCompleto = false; if (nombreCompleto.ToLower().Equals(nomViajero.ToLower())) { if (encontroNomCompleto == false) { lista.Clear(); } encontroNomCompleto = true; string[] susCiudades = linea.ElementAt(3).Split(','); Hashtable lasCiudades = new Hashtable(); foreach (string ciudad in susCiudades) { string[] infoCiudad = ciudad.Split('_'); Pais p = (Pais)paises[infoCiudad.ElementAt(0)]; Ciudad c = (Ciudad)p.Ciudades[infoCiudad.ElementAt(1)]; Ciudad ci = new Ciudad(c.Nombre, c.Id, c.Longitud, c.Latitud, c.TotalPoblacion); lasCiudades.Add(ci.Nombre, ci); } Viajero v = new Viajero(id, nombre, apellido, lasCiudades); lista.Add(v); viajeros.Add(v.Id, v); registroTemp.Add(v); } else { if ((nombre.ToLower().Equals(nomViajero.ToLower()) || apellido.ToLower().Equals(nomViajero.ToLower())) && !encontroNomCompleto) { string[] susCiudades = linea.ElementAt(3).Split(','); Hashtable lasCiudades = new Hashtable(); foreach (string ciudad in susCiudades) { string[] infoCiudad = ciudad.Split('_'); string myCountry = infoCiudad.ElementAt(0); string myCity = infoCiudad.ElementAt(1); Pais p = (Pais)paises[myCountry]; Ciudad c = (Ciudad)p.Ciudades[myCity]; if (c != null) { if (!lasCiudades.ContainsKey(c.Nombre)) { Ciudad ci = new Ciudad(c.Nombre, c.Id, c.Longitud, c.Latitud, c.TotalPoblacion); lasCiudades.Add(ci.Nombre, ci); } } } Viajero v = new Viajero(id, nombre, apellido, lasCiudades); lista.Add(v); viajeros.Add(v.Id, v); registroTemp.Add(v); } } } } return(lista); }
public void agregarViajero(Viajero v) { viajeros.Add(v); }