Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Barra de Progreso de lectura de fichero

Estas en el tema de Barra de Progreso de lectura de fichero en el foro de C/C++ en Foros del Web. Hola buenas, resulta que queria programar una barra de progreso en devc++ para ir mostrando el progreso de lectura de un fichero de texto. Hasta ...
  #1 (permalink)  
Antiguo 14/01/2008, 11:45
 
Fecha de Ingreso: enero-2008
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Barra de Progreso de lectura de fichero

Hola buenas, resulta que queria programar una barra de progreso en devc++ para ir mostrando el progreso de lectura de un fichero de texto.
Hasta ahora voy mostrando por pantalla el porcentaje en numero.
teniendo el tamaño total del fichero en bytes y el porcentaje leido hasta el momento , como lo podria hacer?

Saludos
  #2 (permalink)  
Antiguo 14/01/2008, 12:53
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Barra de Progreso de lectura de fichero

Ayudaría mucho que dijeras que SO estás usando, compilador y esos datos que podrían ser de importancia, porque ni siquiera se si lo estñas haciendo con ventanas o modo texto.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 14/01/2008, 14:33
 
Fecha de Ingreso: enero-2008
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Barra de Progreso de lectura de fichero

estoy utilizando windows xp, uso el devcpp y estaba realizando el programa en modo texto.

saludos y gracias
  #4 (permalink)  
Antiguo 14/01/2008, 14:41
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Barra de Progreso de lectura de fichero

Bueno, puedes usar las API's de windows para el manejo de la consola, posicionar el cursor, colores y esas cosas.

Te recomiendo googlear un poco al respecto.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #5 (permalink)  
Antiguo 14/01/2008, 14:51
 
Fecha de Ingreso: enero-2008
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Barra de Progreso de lectura de fichero

He estado mirando y sinceramente no me aclaro con las apis de windows, no habra alguna otra libreria o manera de hacerlo? aunque quede mas sencillo
  #6 (permalink)  
Antiguo 14/01/2008, 20:54
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 6 meses
Puntos: 52
Re: Barra de Progreso de lectura de fichero

Hace tiempo que no posteaba pero creo que este problema puede tener un tipo de solucion sencilla.

Primero, si vas a usar una barra de esas es porque el fichero va a tardar mas de 3 segundos en leerse. Eso quiere decir por lo menos mas de 2MB de datos en el archivo en una maquina lenta promedio.

ahora si, lo ideal es obviamente obtener el tamaño total del archivo con un par de llamadas de fseek y ftell.
Con eso, solo hay que ir leyendo el archivo en bloques de potencias de 2.
Por ejemplo, leer dentro de una for bloques de 512 bytes.
Y pues solo hacer un poco de matematicas basicas.
Si 1000Mb ="muchos bytes"
entonces
"muchos bytes" es a 100%
como "numero de bloques"*512 es a X.
Entonces X te dara el porcentaje.

No es nada complicado.

Saludos
  #7 (permalink)  
Antiguo 15/01/2008, 07:23
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Barra de Progreso de lectura de fichero

Cita:
Iniciado por consigna Ver Mensaje
He estado mirando y sinceramente no me aclaro con las apis de windows, no habra alguna otra libreria o manera de hacerlo? aunque quede mas sencillo
No sabría decirte, porque mi especialidad es el desarrollo de aplicaciones para GNU/Linux, sin embargo no creo que sea muy difícil el manejo de el cursor usando las APIs.

De cualquier forma creo que hay un port de ncurses para win por alli, pero no sé si sea cierto.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 21:54.