public override ResultadoLectura Leer(string archivo, ParametrosLectura param) { ResultadoLectura resultado = new ResultadoLectura(); DataTable tabla = new CreadorTablaLectura().CrearTabla(); StreamReader reader = new StreamReader(archivo); for (int i = 0; i < 1; i++) { reader.ReadLine(); } while (!reader.EndOfStream) { string linea = reader.ReadLine(); Procesar(param, tabla, linea, resultado); } reader.Close(); resultado.Tabla = tabla; return(resultado); }
public override ResultadoLectura Leer(string archivo, ParametrosLectura param) { ResultadoLectura resultado = new ResultadoLectura(); DataTable tabla = new CreadorTablaLectura().CrearTabla(); StreamReader reader = new StreamReader(archivo); try { for (int i = 0; i < 1; i++) { reader.ReadLine(); } while (!reader.EndOfStream) { string linea = reader.ReadLine().Trim(); try { Procesar(param, tabla, linea, resultado); } catch (Exception) { } } } catch (Exception ex) { PistaMgr.Instance.Error("LecturaArchivos", ex); } finally { reader.Close(); } resultado.Tabla = tabla; return(resultado); }
public override ResultadoLectura Leer(string archivo, ParametrosLectura param) { ResultadoLectura resultado = new ResultadoLectura(); int hoja = 1; int filaInicio = 3; DataTable tabla = new CreadorTablaLectura().CrearTabla(); Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open(archivo, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(hoja); bool continuar = true; while (continuar) { if ((xlWorkSheet.Rows.Cells[filaInicio, 1] as Excel.Range).Value2 == null) { continuar = false; } else { DateTime f1 = new DateTime(1900, 1, 1); DateTime fecha = f1.AddDays(-2 + (double)(xlWorkSheet.Rows.Cells[filaInicio, 1] as Excel.Range).Value2); TimeSpan hora = fecha.TimeOfDay; RegistroLectura reg = RegistroLectura.GetRegistroLectura(fecha, hora); resultado.Registros.Add(reg); foreach (MC_RPuntoMedicionFormatoDetalle r in param.DetalleMagElec) { int numColumna = r.GetNumColumna(); if (numColumna >= 0) { DataRow row = tabla.NewRow(); row["Fecha"] = reg.Fecha.Date; //fecha.Date; row["Hora"] = reg.Hora; //hora; row["Canal"] = r.Canal; row["CodInfCanal"] = r.FkCodMagnitudElec; row["Valor"] = (double)(xlWorkSheet.Rows.Cells[filaInicio, numColumna + 1] as Excel.Range).Value2; tabla.Rows.Add(row); reg.AdicionarItem(r.FkCodMagnitudElec, (double)row["Valor"]); reg.AdicionarRow(row); } } filaInicio++; } } DestructorObjetosExcel.ReleaseObject(xlWorkSheet); xlWorkBook.Close(true, null, null); xlApp.Quit(); DestructorObjetosExcel.ReleaseObject(xlWorkBook); DestructorObjetosExcel.ReleaseObject(xlApp); resultado.Tabla = tabla; return(resultado); }
private DateTime?Procesar(ParametrosLectura param, DataTable tabla, DateTime?fecha, string linea, ResultadoLectura resultado) { try { string[] datos = linea.Split(','); UtilitarioLectura.LimpiarComillas(datos); if (datos.Length >= 5 && !string.IsNullOrEmpty(datos[0].Trim())) { if (fecha == null) { string strFecha = datos[0].Substring(0, datos[0].LastIndexOf(' ')); fecha = DateTime.ParseExact(strFecha, "M/d/yy", System.Threading.Thread.CurrentThread.CurrentCulture); } string strHora = GetHora(datos[0]); if (strHora == "24:00") { strHora = "00:00"; fecha = fecha.Value.AddDays(1); } TimeSpan hora = TimeSpan.Parse(strHora); RegistroLectura reg = RegistroLectura.GetRegistroLectura(fecha.Value, hora); resultado.Registros.Add(reg); foreach (MC_RPuntoMedicionFormatoDetalle r in param.DetalleMagElec) { int numColumna = r.GetNumColumna(); if (numColumna >= 0) { DataRow row = tabla.NewRow(); row["Fecha"] = reg.Fecha.Date; //fecha.Date; row["Hora"] = reg.Hora; //hora; row["Canal"] = r.Canal; row["CodInfCanal"] = r.FkCodMagnitudElec; double?valor = GetDouble(datos[numColumna]); if (valor == null) { row["Valor"] = System.DBNull.Value; } else { row["Valor"] = valor.Value; } tabla.Rows.Add(row); reg.AdicionarItem(r.FkCodMagnitudElec, valor); reg.AdicionarRow(row); } } } } catch (Exception) { } return(fecha); }
private void Procesar(ParametrosLectura param, DataTable tabla, string linea, ResultadoLectura resultado) { try { string[] datos = linea.Split(','); UtilitarioLectura.LimpiarComillas(datos); if (datos.Length > 5) { DateTime fecha = GetFecha(datos[0]); TimeSpan hora = TimeSpan.Parse(datos[1]); RegistroLectura reg = RegistroLectura.GetRegistroLectura(fecha, hora); resultado.Registros.Add(reg); foreach (MC_RPuntoMedicionFormatoDetalle r in param.DetalleMagElec) { int numColumna = r.GetNumColumna(); if (numColumna >= 0) { DataRow row = tabla.NewRow(); row["Fecha"] = reg.Fecha.Date; //fecha.Date; row["Hora"] = reg.Hora; //hora; row["Canal"] = r.Canal; row["CodInfCanal"] = r.FkCodMagnitudElec; double?valor = GetDouble(datos[numColumna]); if (valor == null) { row["Valor"] = System.DBNull.Value; } else { row["Valor"] = valor.Value; } tabla.Rows.Add(row); reg.AdicionarItem(r.FkCodMagnitudElec, valor); reg.AdicionarRow(row); } } } } catch (Exception) { } }