Foros del Web » Programación para mayores de 30 ;) » Programación General »

Progreso fichero

Estas en el tema de Progreso fichero en el foro de Programación General en Foros del Web. Hola a todos, Hacía mucho tiempo que no entraba en el foro de programación, antes era un asiduo, pero bueno, he estado demasiado liado. Cuento ...
  #1 (permalink)  
Antiguo 25/09/2003, 03:10
 
Fecha de Ingreso: abril-2002
Mensajes: 438
Antigüedad: 22 años
Puntos: 2
Progreso fichero

Hola a todos,

Hacía mucho tiempo que no entraba en el foro de programación, antes era un asiduo, pero bueno, he estado demasiado liado. Cuento mi duda: en una aplicación en VB 6.0 tengo que recorrerme una serie de ficheros de texto y hacer algunas "cosillas" en una BBDD con las líneas de cada uno de ellos. El proceso es costoso y por tanto cada vez que abro uno de los ficheros muestro un progressbar en el statusbar del formulario para indicar al usuario como va el procesamiento. Al no tener mucha idea de como establecer el límite superior del progressbar lo que hago es lo siguiente:
- Abro el fichero y lo recorro volcando cada una de las líneas a un vector.
- Ahora ya sé el número de líneas que tiene el fichero (el ubound del vector más uno) y por tanto establezco el límite superior del progressbar.
- Me recorro el vector y voy procesando las líneas incrementando unitariamente el progress bar cada vez que proceso una línea

Ahora bien, me pregunto, si leyendo de fichero puedo trabajar directamente con el progressbar. Es decir, ¿es posible interactuar entre la lectura de un fichero y el incremento de un progressBar sin necesidad de tener que trabajar con ese vector sobre el que vuelco la información?

Desde ya muchas gracias por anticipado a todos y saludos,
Julio.
  #2 (permalink)  
Antiguo 25/09/2003, 09:43
Avatar de nazkatuta  
Fecha de Ingreso: julio-2002
Ubicación: EH - BCN
Mensajes: 222
Antigüedad: 21 años, 8 meses
Puntos: 0
Hola,

si usas un objeto File de filesystemobject podras saber el tamaño del archivo con la propiedad Size, y a medida que trates cada linea podrias aumentar la barra segun el tamaño en bytes de cada linea.

otra opcion es que abras el archivo, lo recorras entro y asi ya tendras el numero de lineas. Luego vuelve a abrir fichero y trata las lineas.

Esta ultima se parece a como lo haces tu pero sin volcarlo en un array, ya que no se el tamaño aproximado que ocupará tu archivo, pero de esta forma no lo cargas todo en memoria.

espero que te sirva.
__________________
Cita:
Gaur ere nahi nuke...
zure ondoan esnatu
  #3 (permalink)  
Antiguo 27/09/2003, 15:14
 
Fecha de Ingreso: abril-2002
Mensajes: 438
Antigüedad: 22 años
Puntos: 2
Hola,

Gracias por la respuesta. Te prometo que la segunda opción que me has dado es como en un principio lo tenía hecho, pero hice pruebas de rendimiento y la opción que tengo ahora es más rápida y la memoria no es problema ya que el proceso corre en un servidor que tiene 2Gb de RAM y cada ficherito es de aproximadamente 500K, así que no es problema cargar cada uno de ellos en memoria, procesarlo y luego liberar. Eso sí, la primera opción que me has dado no la había tenido en cuenta, voy a probarlo porque me parece que es lo que andaba buscando.

Un saludo y gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.