Estoy teniendo problemas para la lectura de archivos de texto separado por comas y espero que alguno de ustedes me pueda ayudar.
Hace algún tiempo lancé en este mismo foro una pregunta que afortunadamiente fue contestada por el compañero Kwasir (y a su compañero Álvaro quien dió la respuesta) y que consistía en saber cómo se puede cargar un achivo de texto separados por comas (,) y uno separado por Pipelines (|) a un GridView.
http://www.forosdelweb.com/f78/como-cargar-archivo-texto-gridview-634601/
La respuesta para esto es la utilización de un archivo Schema.ini para poder especificarle qué tipo de delimitador se está utilizando para cada archivo. Ahora bien. ahora tengo el siguiente problema. Continuando con los mismos archivos de Texto, tengo algo como esto:
Ejemplo archivo separado por comas (c:/ReportesSemanales/ReporteComas.txt)
2008,1899,Oficinas Centrales,10,99,
2008,1897,Almacén "A",10,99,
2008,1900,Sala de usos múltiples,10,99,
2008,1898,Almacén "B",10,99,
Ejemplo archivo separado por Pipeline's (c:/ReportesSemanales/ReportePipe.txt)
2008|1899|Oficinas Centrales|10|99|
2008|1897|Almacén "A"|10|99|
2008|1900|Sala de usos múltiples|10|99|
2008|1898|Almacén "B"|10|99|
Mi Archivo Schema.ini está definido de la siguiente manera:
[ReporteComas.txt]
ColNameHeader=False
Format=Delimited(,)
CharacterSet=ANSI
[ReportePipes.txt]
ColNameHeader=False
Format=Delimited(|)
CharacterSet=ANSI
Sin embargo al momento de hacer la carga al GridView me está arrojando los siguientes Resultados:
F1--|F2--|F3----------------|F4|F5|
----------------------------------
2008|1899|Oficinas Centrales---|10|99|
2008|1897|Almacén-----------|--|--|
2008|1900|Sala de usos múltiples|10|99|
2008|1898|Almacén-----------|--|--|
Como podrán ver para los registros 2 y 4 me corta la descripción hasta antes de la primer comilla doble (") y me deja los campos F4 y F5 sin información...
Para cargar el archivo en el GridView estoy utilizando el siguiente código
Código:
Mi gustaría saber si alguien sabe por qué está sucediento esto y cómo puedo solucionarlo. Muchas Gracias de Antemano 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()); }
Leo