Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: v.hagra en Diciembre 26, 2011, 09:04:16 pm
-
Hola amigos, soy nuevo en esto de la programación, por favor, no confundan mi nombre de usuario con el de una pastillita azul, jeje es una broma. Paso a contar..
Tengo que hacer un programita en vb6 que lea un archivo de unos 1.6 gb, el problema es que no llega a leer esa cantidad, debe llegar a unos 30 o 40 MB y el programa, junto con vb6 y el xp dejan de responder y tengo que reiniciar mi notebook. Por cierto tengo 2 GB de ram y 320 gb de espacio total en mi disco duro.
al principio intente que mi programita me lea 1.6 gb de una sola vez, y creo que es un gran error, pensando mas, se me ocurrio leerlo en partes mas pequeñitas, cuando termina de leer, borra el contenido y carga el resto. Por ejemplo
lee el primer bloque de 1MB, LO CARGA, REALIZO ALGUNA ACCION Y BORRO SU CONTENIDO, LUEGO VUELVE A LEER 1 MB Y ASI HASTA COMPLETAR EL GB.
EL INCONVENIENTE ES QUE NO LOGRO HACER QUE ME LEA 1MB Y LUEGO LO BORRE, Y DESPUES SIGA CON OTRO MB.
SI ALGUIEN PODRIA ORIENTARME, SE AGRADECERA MUCHISIMO!! POR CIERTO, ¿COMO SE PODRIA HACER PARA QUE TODO EL PROCESO DEMORE EL MENOR TIEMPO POSIBLE??
ESTOY A LA ESPERA Y DISPUESTO A AYUDAR A TODOS, DESDE LO QUE PUEDA!
MUCHAS GRACIAS POR LEER!!! :o :o ;D ;) :) :'(
-
Pues sin una linea de código es bastante difícil ayudarte, ¿de que tipo de archivo hablamos? ¿como lo lees o accedes a dicho archivo? ¿como borras? etc.
Saludos.
-
tambien te faltaria decir para que necesitas hacer eso, puede que tenga una solucion mas facil.
-
Podes ir abriendo por lineas, o sino usando API's y usando algun buffer :P
-
Hi,
First of all you have not informed us which type of file are you trying to read. Is that a Text file or a Binary file?
What I suppose you are trying to read a Binary File. You ca try this code.
Instead of storing data in a String you should try to store in Byte Array.
Dim Fdata() as Byte 'Or you can choose it as a String like Dim Fdata as String
Open <Filepath> For Binary as #1
Fdata = Space(LOF(1))
Get#1, , Fdata
Close #1