Si, lo que tengo que hacer es lo siguiente.
El archivo txt que menciono tiene un formato como el siguiente:
21112007;18102006;01012021;20165718144;D;S;N;6,00;1,72;15;10
21112007;07122007;01012010;20255566491;D;S;N;6,00;1,73;15;10
21112007;02012010;31122020;30691156377;D;S;N;6,00;1,74;15;10
(y asi hasta pasar el millon de lineas)
Uno de los valores de cada linea (que estan separados por ";") representa un nro de cliente.
Por otro lado en una tabla en una base de datos tengo guardados los clientes que trabajan con la empresa en donde trabajo.
Entonces lo que yo tendria que hacer es leer en cada linea ese nro de cliente, fijarme (por medio de una consulta SQL) si ese cliente existe en la base de datos y si existe hago un INSERT a otra tabla con casi todos los valores que aparecen en esa linea. Eso y algunas cosas mas.
El problema que leer linea por linea directamente del archivo y hace muy lento el proceso. (en realidad porque son muchas lineas).
Aunque todavia no se bien como se haria, ¿podria ser una forma mas rapida cargando bloques del archivo a memoria (por ejemplo a un string) y procesar el string directamente?
Asi estoy leyendo el archivo
StreamReader sr = new StreamReader(txtRuta.Text);
while ((sLineaTexto = sr.ReadLine()) != null)
Otra cosa que puedo mejorar es que por cada linea hago un Select a la base de datos para ver si existe. Quiza podría dejar esos clientes de la base de datos en una lista o no se si se podra en un dataset y despues consuntarlos directamente de ahi, no se si sera eso mas rapido.
El codigo que uso para procesar cada lineas del archivo de texto debe tener unas 80 lineas. Si te interesa te lo puedo resumir y ponerlo, no lo hago realmente para no molestar tanto.
Espero que me este explicando bien...
Saludos y gracias!