/// <summary> /// Lee una cadena de caracteres de un archivo de texto /// </summary> /// <param name="nombreArchivo"></param> /// <param name="datos"></param> /// <returns></returns> public Fabrica LeerTexto() { string ruta = Directory.GetCurrentDirectory() + @"\Computadoras.txt"; List <string> productos = new List <string>(); Fabrica fabrica = GetFabrica(this.AlmacenDeProductos); ArchivosTexto <Producto> texto = new ArchivosTexto <Producto>(); texto.Leer(ruta, out productos); foreach (string producto in productos.ToArray()) { string[] campos = producto.Split(','); if (campos[0] == "Computadora") { Computadora.TipoComputadora tipo; Computadora.ESistemaOperativo eSistema; bool pasoControlCalidad; if (campos[5] == "Escritorio") { tipo = Computadora.TipoComputadora.Escritorio; } else { tipo = Computadora.TipoComputadora.Notebook; } if (campos[4] == "Pasó control de calidad") { pasoControlCalidad = true; } else { pasoControlCalidad = false; } switch (campos[6]) { case "Windows": eSistema = Computadora.ESistemaOperativo.Windows; break; case "OSX": eSistema = Computadora.ESistemaOperativo.OSX; break; case "Linux": eSistema = Computadora.ESistemaOperativo.Linux; break; default: eSistema = Computadora.ESistemaOperativo.SinSistemaOperativo; break; } double precio = double.Parse(campos[3].Remove(0, 1), CultureInfo.InvariantCulture); //Para que tome el punto como una coma Computadora computadora = new Computadora(int.Parse(campos[1]), campos[2], precio, tipo, eSistema, pasoControlCalidad); fabrica.Productos.Add(computadora); } } return(fabrica); }
/// <summary> /// Lee una cadena de caracteres de un archivo de texto /// </summary> /// <param name="nombreArchivo"></param> /// <param name="datos"></param> /// <returns></returns> public Fabrica LeerTexto() { string ruta = Directory.GetCurrentDirectory() + @"\Computadoras.txt"; List <string> productos = new List <string>(); Fabrica fabrica = GetFabrica(this.AlmacenDeProductos); ArchivosTexto <Producto> texto = new ArchivosTexto <Producto>(); texto.Leer(ruta, out productos); foreach (string producto in productos.ToArray()) { string[] campos = producto.Split(','); if (campos[0] == "Computadora") { Computadora.TipoComputadora tipo; Computadora.ESistemaOperativo eSistema; if (campos[5] == "0") { tipo = Computadora.TipoComputadora.Escritorio; } else { tipo = Computadora.TipoComputadora.Notebook; } switch (campos[6]) { case "0": eSistema = Computadora.ESistemaOperativo.Windows; break; case "1": eSistema = Computadora.ESistemaOperativo.OSX; break; case "2": eSistema = Computadora.ESistemaOperativo.Linux; break; default: eSistema = Computadora.ESistemaOperativo.SinSistemaOperativo; break; } Computadora computadora = new Computadora(int.Parse(campos[1]), campos[2], double.Parse(campos[3]), tipo, eSistema, bool.Parse(campos[4])); fabrica.Productos.Add(computadora); } } return(fabrica); }
/// <summary> /// Implementacion que guarda en formato de texto la lista de productos, dejando su informacion guardada en writer /// </summary> /// <param name="info">La lista a convertir a texto </param> public void Guardar() { List <Computadora> computadoras = new List <Computadora>(); foreach (Producto p in this.Productos) { if (p is Computadora) { computadoras.Add((Computadora)p); } } string ruta = Directory.GetCurrentDirectory() + @"\Computadoras.txt"; ArchivosTexto <Computadora> texto = new ArchivosTexto <Computadora>(); texto.Guardar(ruta, computadoras); }