elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  barra de progreso en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: barra de progreso en c++  (Leído 3,351 veces)
d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
barra de progreso en c++
« en: 27 Abril 2014, 03:18 am »

hola a toda la comunidad, solo necesito implementar una barra de progreso en c++, por ejemplo tengo un archivo txt y lo necesito cargar a una determinada estructura; pero tengo que mostrar el avance de la carga, ya he buscado como hacer las barras, pero las que he hecho solo funcionan con un ciclo for o con la funcion sleep donde yo decido cuanto se tardara en llenar, lo que ya se como hacer es contar el tiempo que ha durado la carga del archivo, pero no se como contar el tiempo restante para la carga que creo ayudaria a llenar la barra  agradecere las ideas.


En línea

El Benjo


Desconectado Desconectado

Mensajes: 390



Ver Perfil WWW
Re: barra de progreso en c++
« Respuesta #1 en: 27 Abril 2014, 06:14 am »

Lo que puedes hacer para determinar el tiempo restante, es una simple operación como la siguiente.

TiempoRestante = (BytesLeídos / TiempoDeActividad) * (BytesTotalesALeer - BytesLeídos)

Saludos. Espero te funcione.  :)


En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: barra de progreso en c++
« Respuesta #2 en: 27 Abril 2014, 10:24 am »

(Bytes leidos / Bytes totales)*100

Eso te dira que porcentaje de la barra tienes que colorear. Aun asi tendras que poner un sleep para actualizar cada X tiempo (si lo haces en tiempo real sera un desperdicio de recursos).

Una actualización por segundo esta bien.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
El Benjo


Desconectado Desconectado

Mensajes: 390



Ver Perfil WWW
Re: barra de progreso en c++
« Respuesta #3 en: 27 Abril 2014, 20:15 pm »

Me supongo que la lectura la haces leyendo x bytes del archivo de una vez y no byte por byte. De ser así, puedes poner la operación después de cada lectura, y no se desperdicia tanto tiempo. Paso a explicar:

Suponiendo que haces la lectura de 100 000 bytes (100 Kbytes por vez) y tienes un archivo de 10 000 000 (10 Mbytes) entonces:

10 000 000 / 100 000 = 100

De esta manera sólo se realiza esta operación 100 veces. Si manejas archivos más grandes que eso y quieres que sean menos operaciones puedes incrementar el buffer de lectura o incluso no hacer nada. Para los micros actuales donde por 99 euros consigues arriba de 40 Gflops, 100 operaciones aritméticas de división, no son nada. Y dependiendo de la manera en que lo hagas, el presentar la información en la pantalla tampoco debe ser un problema.

Otra cosa, el comentario anterior a este (el de amchacon) te da el porcentaje de la barra. El primer comentario mío te debería dar el tiempo restante. Saludos.
« Última modificación: 27 Abril 2014, 20:22 pm por El Benjo » En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: barra de progreso en c++
« Respuesta #4 en: 27 Abril 2014, 21:25 pm »

La barra de progueso debe hacerse en un hilo de ejecución aparte para no bloquear el proceso de carga. De hecho yo soy partidario de usar el proceso principal solo para dibujar, todo lo demás en hilos aparte.

El método de benjo es más eficiente pero hay que implementarlo con "condiction variables", y eso complica un poco el asunto. Hacer un refresco cada segundo es mucho más sencillo (duermes el hilo un segundo y listo).
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
barra de progreso
.NET (C#, VB.NET, ASP)
DaNuK 2 3,099 Último mensaje 10 Marzo 2010, 02:05 am
por DaNuK
Barra de progreso [Batch]
Scripting
Nilrac 8 13,206 Último mensaje 13 Enero 2016, 09:13 am
por Eleкtro
VBS barra de progreso
Programación Visual Basic
quico5 0 2,316 Último mensaje 14 Agosto 2012, 20:41 pm
por quico5
Barra de progreso no termina « 1 2 »
.NET (C#, VB.NET, ASP)
Lekim 11 4,159 Último mensaje 14 Abril 2016, 17:42 pm
por Lekim
Añadir codigo de Barra de Progreso a un BAT
Scripting
BDJMarcelo 5 4,921 Último mensaje 3 Julio 2017, 21:02 pm
por BDJMarcelo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines