1.- 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.
2.- 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().
2.- 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.
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
¿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!