Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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)
            {
            }
        }