Escribí un programa C# para leer un archivo .xls/.xlsx de Excel y enviarlo a texto CSV y Unicode. Escribí un programa separado para eliminar los registros en blanco. Esto se logra leyendo cada línea con StreamReader.ReadLine(), y luego yendo carácter por carácter a través de la cadena y no escribiendo la línea para mostrar si contiene todas las comas (para el CSV) o todas las pestañas (para el texto Unicode).C# StreamReader.ReadLine() - Necesito elegir los terminadores de línea
El problema se produce cuando el archivo de Excel contiene nuevas líneas incorporadas (\ x0A) dentro de las celdas. Cambié mi conversor de XLS a CSV para encontrar estas nuevas líneas (ya que va de celda en celda) y las escribo como \ x0A, y las líneas normales solo usan StreamWriter.WriteLine().
El problema se produce en el programa separado para eliminar registros en blanco. Cuando leo con StreamReader.ReadLine(), por definición, solo devuelve la cadena con la línea, no con el terminador. Como las nuevas líneas incorporadas aparecen como dos líneas separadas, no puedo decir cuál es un registro completo y cuál es una nueva línea incrustada para cuando las escribo en el archivo final.
Ni siquiera estoy seguro de poder leer en \ x0A porque todo en la entrada se registra como '\ n'. Podría ir personaje por personaje, pero esto destruye mi lógica para eliminar líneas en blanco.
Cualquier idea sería muy apreciada.
Gracias ton tone Scott. Esta parece la solución adecuada. Soy un graduado reciente de CompSci, así que es genial ver que haya disponible ayuda como esta. –