public static Senial ObtenerSenial(string ssenial, int largo) { Senial opSenial = null; if (ssenial == "Basica") { opSenial = new SenialBasica (); } else if ( ssenial == "Pila") { opSenial = new SenialPila (largo); } else if (ssenial == "Cola") { opSenial = new SenialCola (largo); } return opSenial; }
public Senial Recuperar(object id) { /* Obtener todos los archivos .dat * Para cada archivo, obtener la cabecera * Parsear la cabecera * Si el id es buscado * Levantar la señal * */ bool _encontro = false; string _linea = ""; SenialBasica _senialArchivada = new SenialBasica (); try{ string [] _lista_datos = Directory.GetFiles(_ubicacion, "*.txt"); Console.WriteLine("Hay {0} archivo/s", _lista_datos.Length.ToString()); for (int i=0; !(_encontro); i++) { using (StreamReader _arch_datos = new StreamReader(_lista_datos[i])) { _linea = _arch_datos.ReadLine(); Console.WriteLine(_linea); this.ParsearCabecera(_linea, _senialArchivada); if (_senialArchivada.Id == Convert.ToInt32(id)) { _encontro = true; int j = 0; while((_linea = _arch_datos.ReadLine()) != null) { Console.WriteLine (_linea); ParsearDato(_linea, _senialArchivada); Console.WriteLine("---> {0} : {1}",j, _senialArchivada.ObtenerValor(j)); j++; } } } } this.Trazar (_senialArchivada, "Se recupero la señal"); this.Auditar(_senialArchivada, _senialArchivada.GetType().ToString()); } catch (Exception e) { Console.WriteLine(e.Message); this.Trazar (_senialArchivada, e.Message); return null; } return _senialArchivada; }