Visual Basic - Lectura fichero plano

Life is soft - evento anual de software empresarial
 
Vista:

Lectura fichero plano

Publicado por Betty (42 intervenciones) el 23/03/2006 11:48:10
Hola a todos,
Tengo un programa en visual basic en el q. tengo q. leer de un fichero plano, para buscar un código determinado.La idea es buscar en ese fichero cada código con el q. trabajo. El fichero plano tiene un peso de 2 gigas... Había pensado dos formas de hacerlo.
1.- Cargar en memoria el fichero plano y buscar. Pero esto pienso q. no es muy factible por el tamaño del fichero, debería disponer de 2 gigas de memoria y eso no es así.
2.- Otra solución es cargar el fichero en una BD access... Pero esta solución no se ni como hacerla. Vamos no se q. referencias tengo q. añadir al proyecto y como puedo cargar el fichero. ¿alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Lectura fichero plano

Publicado por Matías Freire (421 intervenciones) el 23/03/2006 20:52:11
Primero... El tamaño del archivo es porque cada registro es muy largo, o porque tenés un montón de registros??

Si el archivo es grando por el tamaño de los registros y no por la cantidad, no hace falta poner el archivo en memoria. abrilo, y vas leyendo cada línea en forma secuencial. cuando encuntras el código, sles de bucle. (más adelante un ejemplo). obviamente, supongo que cada registro del archivo debe tener campos separados por comas o al menos por TAB. as i que haces lo siguiente

private function BuscarCodigo (codigo as string) as boolean
dim campo as string

BuscarCodigo = False
open "mi archivo" for input as #1 'abre el archivo como solo lectura
do while not eof(1) 'sigue mientras no llegue al final
input #1, campo 'lee el primer campo del registro
if campo = codigo then 'compara
BuscarCodigo = True 'devuelve true a la funcion
exit do 'si lo encuentra sale del bucle
end if
loop
close #1 'cierra el archivo

end function

Si el problema es que el archivo tiene demasiados registros, todavía no entiendo cómo es que no están usando una BD. tendrías que pasar el archivo a una bd y empezar a trabajar con eso (obviamente, TODO lo vas a tener que hacer con BD, ni se te ocurra que cada vez que abras el programa te pase el archivo a bd para trabajar, porque es un desproposito).

pasar un archivo plano a BD no es tan dificl. para hacerlo facil.. tendrias que empezar haciendo una bd con el access, que tenga una tabla y todos los campos necesarios y pasar la info del archivo a la bd. pero eso ya es otra cosa y medio extensa como para responder por acá. cualquier cosa lo vemos por mail. puedes escribirme si lo deseas

esopero que te haya servido saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar