Leer archivo txt y validar estructura

Iniciado por elqueteconte, 24 Febrero 2016, 22:46 PM

0 Miembros y 1 Visitante están viendo este tema.

elqueteconte

Saludos amigos,

Tiempo sin andar por acá.

En esta oportunidad vengo a hacerles una consulta; necesito hacer tres cosas:
1.- Leer la estructura de un archivo txt cuyos campos están separados por punto y coma.
2.- Leer cada campo del registro y validar si el campo tiene datos o está vacio, si tiene valores numericos cuando debe ser alfanumericos.
3.- Si encuentra errores en los registros ir guardandolos en otro txt y al fina dar un resumen, es decir, se procesaron X registros los cuales Y tienen errores e indicar cada registro con su error al lado

Alguien podría darme una mano con esto?

Gracias mil desde ya.


Eleкtro

#1
Cita de: elqueteconte en 24 Febrero 2016, 22:46 PM1.- Leer la estructura de un archivo txt cuyos campos están separados por punto y coma.

Para parsear archivos con estructura CSV puedes recurrir a metodologías tradicionales mediante un String.Split() en cada linea para manejar los Arrays resultantes, o también puedes utilizar la class TextFieldParser.





Cita de: elqueteconte en 24 Febrero 2016, 22:46 PM2.- Leer cada campo del registro y validar si el campo tiene datos o está vacio

Para comprobar si una cadena de texto está vacía, puedes utilizar la función String.IsNullOrEmpty().





Cita de: elqueteconte en 24 Febrero 2016, 22:46 PM2.- Leer cada campo del registro y validar si el campo tiene datos o está vacio, si tiene valores numericos cuando debe ser alfanumericos.

Para determinar si una cadena de texto es alfanumérica, es decir, que contenga al menos 1 letra y 1 dígito, puedes hacerlo con una expresión regular para simplificar el código, pero si quieres obtener mejores resultados de rendimiento yo te sugiero realizar una consulta LINQ-to-Objects o un For, evaluando cada caracter con las funciones Char.IsLetter() y Char.IsDiggit() para llevar la cuenta, sin olvidarnos de interrumpir la iteración del For (break/Exit For) cuando se haya encontrado 1 de cada tipo de caracter, para no perder tiempo de ejecución evaluando el resto de caracteres de forma innecesaria.





Cita de: elqueteconte en 24 Febrero 2016, 22:46 PM3.- Si encuentra errores en los registros ir guardandolos en otro txt y al fina dar un resumen, es decir, se procesaron X registros los cuales Y tienen errores e indicar cada registro con su error al lado

¿Por qué trabajar con otro archivo de texto adicional solamente para informar de los errores encontrados?.

Yo te sugiero trabajar desde la memoria, utilizando por ejemplo un diccionario con llave y valor de tipo String, donde ir añadiendo una entrada al diccionario por cada "valor corrupto", con una breve descripción del tipo de problema encontrado.


Saludos!








elqueteconte

Epale Elektro;

Gracias por la información amigo.

El año pasado me diste una enorme ayuda con un utilitario que me ayudaste a desarrollar cuyo objetivo es el de tomar unos txt y empaquetarlos; ahora tengo que incluir en este una función para verificar cada txt; pero ocurre que pueden haber dos grupos de txt a verificar, dependiendo de la opción que indique el usuaior.

Te paso el paquete a ver donde me sugieres que deba colocar la verificarción del archivo antes de hacer todo el trabajo de fusión y empaquetado de los archivos.

Te adjunto el paquete:
https://www.dropbox.com/s/f06pdzxxov2bp3w/WindowsApplication6.rar?dl=0