Foros del Web » Programando para Internet » ASPX (.net) »

Cómo cargar un archivo de Texto a un GridView

Estas en el tema de Cómo cargar un archivo de Texto a un GridView en el foro de ASPX (.net) en Foros del Web. Buenas Tardes, tengo un problema para poder cargar un achivo de texto a un gridView y espero que alguno de ustedes me pueda ayudar. Primero ...
  #1 (permalink)  
Antiguo 15/10/2008, 11:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Cómo cargar un archivo de Texto a un GridView

Buenas Tardes, tengo un problema para poder cargar un achivo de texto a un gridView y espero que alguno de ustedes me pueda ayudar. Primero explico el escenario en el que me encuentro:

Actualmente en la empresa donde trabajo algunas oficinas entregan informes en archivos de texto. Algunos archivos vienen separados por comas, pero algunos otros están separados por Pipeline's (|). En estos momentos estoy desarollando una aplicación en ASP.NET con C# para visualizar estos archivos de texto dentro de un GridView. La estructura de los archivos de texto es más o menos como sigue:

Ejemplo archivo separado por comas (c:/ReportesSemanales/ReporteComas.txt)
2008,1897,1,10,99,4,3,223,419035
2008,1898,1,10,99,4,3,223,420768
2008,1899,1,10,99,4,3,223,420244
2008,1900,1,10,99,4,3,223,419871
2008,1901,1,10,99,4,3,223,419868
2008,1902,1,10,99,4,3,223,420094
2008,1903,1,10,99,4,3,223,419039

Ejemplo archivo separado por Pipeline's (c:/ReportesSemanales/ReportePipe.txt)

2008|1897|1|10|99|4|3|223|419035
2008|1898|1|10|99|4|3|223|420768
2008|1899|1|10|99|4|3|223|420244
2008|1900|1|10|99|4|3|223|419871
2008|1901|1|10|99|4|3|223|419868
2008|1902|1|10|99|4|3|223|420094
2008|1903|1|10|99|4|3|223|419039

Ahora bien, para Leer el archivo De texto, lo hago mediante OLEDB, a grandes rasgos esto es lo que hago:

#region Obtiene la Cadena De Conexión
connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source={0};Extended Properties='text;HDR={1};FMT={2}'", "c:/ReportesSemanales", "NO", "Delimited");
SelectSQL ="SELECT * FROM " + ReporteComas.txt; //-> Para Pipelines cambiar
try
{
conn = new OleDbConnection(@connectionString);
conn.Open(); // Abrimos la conexión al archivo
OleDbCommand dbCommand = new OleDbCommand(SelectSQL.ToString(), conn);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);
//Crear una nueva Tabla
DataTable dTable = new DataTable();
dataAdapter.Fill(dTable);
//Asignar la tabla al GridView
GVArchivo.DataSource = dTable;
GVArchivo.DataBind();
// Eliminar los objetos y cerrar las conexiones.
dTable.Dispose();
dataAdapter.Dispose();
dbCommand.Dispose();
conn.Close();
conn.Dispose();
}
catch (Exception ex)
{
Temporal = new StringBuilder();
Temporal.Append("A ocurrido una excepción: \n ").Append(@ex.ToString());
}

Cuando estoy leyendo el archivo separado por comas, no tengo ningún problema, sin embargo, cuando trato de leer el archivo separado por pipelines se carga la información en una sola columna del GridView, cuando lo que yo deseo es que separa cada valor en una columna diferente.

Mi pregunta es ¿Cómo puedo especificarle a mi string de conexión qué caracter debe utilizar como delimitador?

Saludos y espero que me puedan ayudar
  #2 (permalink)  
Antiguo 16/10/2008, 01:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 34
Antigüedad: 16 años, 7 meses
Puntos: 4
Respuesta: Cómo cargar un archivo de Texto a un GridView

Hola Leonardo Josué:

Consultando por aquí mi compañero Álvaro (a quien cedo los créditos) propone una solución:

Añade a la carpeta donde guardas los ficheros otro archivo con el nombre "Schema.ini" y con el siguiente contenido:

Código:
[ReportePipe.txt]
ColNameHeader=False
Format=Delimited(|)
CharacterSet=ANSI
Puedes añadir a este esquema tantos ficheros como quieras. Además puedes añadir nombres de columnas, formatos, etc. Tu código no necesita ningún cambio.

Espero que te sirva.

Última edición por Kwasir; 16/10/2008 a las 04:27
  #3 (permalink)  
Antiguo 16/10/2008, 09:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Cómo cargar un archivo de Texto a un GridView

Muchas Gracias Kwasir... ya probé el código y funciona perfectamente , no tuve qué hacer ningúna modificación.

Saludos
Leo

Cita:
Iniciado por Kwasir Ver Mensaje
Hola Leonardo Josué:

Consultando por aquí mi compañero Álvaro (a quien cedo los créditos) propone una solución:

Añade a la carpeta donde guardas los ficheros otro archivo con el nombre "Schema.ini" y con el siguiente contenido:

Código:
[ReportePipe.txt]
ColNameHeader=False
Format=Delimited(|)
CharacterSet=ANSI
Puedes añadir a este esquema tantos ficheros como quieras. Además puedes añadir nombres de columnas, formatos, etc. Tu código no necesita ningún cambio.

Espero que te sirva.
  #4 (permalink)  
Antiguo 28/10/2009, 12:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cómo cargar un archivo de Texto a un GridView

Kwasir,

Crees que me puedes explicar un poco sobre el fichero Schema.ini? Como funciona?

Lo que he entendido es que tengo que crear un fichero TXT con ese nombre y colocar el codigo que mencionas el cual va a definir el formato de el archivo de texto que vamos a leer pero, lo que no entiendo es como hacer referencia a ese archivo o en que momento el sistema lo utiliza.

Espero que no este tan fuera de orbita con este comentario, lo que sucede es que yo tambien estoy trabajando en leer un txt para colocar la informacion en un gridView pero mno he tenido buenos resultados. Gracias.

un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.