comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Porcentaje del progreso de una transferencia de archivos?

  • 4 Respuestas
  • 1788 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 121
  • Actividad:
    1.67%
  • Reputación 0
  • belial grimoire
    • Ver Perfil
« en: Mayo 14, 2013, 06:47:52 pm »
alguien sabe como se consigue el porcentaje de la cantidad de un archivo, para usarlo en este caso en un transferencia de archivos y saber el porcentaje de envio ... por ejemplo

Lo que hago es saber la cantidad exacta del archivo

Código: C
  1. No tienes permisos para ver links. Registrate o Entra con tu cuenta(fd, 0, SEEK_END);
  2. tam = No tienes permisos para ver links. Registrate o Entra con tu cuenta(fd);
  3. No tienes permisos para ver links. Registrate o Entra con tu cuenta(fd);
  4. No tienes permisos para ver links. Registrate o Entra con tu cuenta("cantidad del archivo: %ld\n", tam);



despues lo envio por socket

Código: C
  1. while(i < tam){
  2.  
  3. leido = No tienes permisos para ver links. Registrate o Entra con tu cuenta(bu, sizeof(char), 256, fb);
  4. send(newfd, bu, leido, 0);
  5. i = i + leido;
  6. No tienes permisos para ver links. Registrate o Entra con tu cuenta("Enviando-- %ld bytes / %ld bytes", i, tam);
  7. }


pero no se de que forma puedo encontrar el porcentaje de envio para que me muestra de 0% al 100% el envio... alguien sabe como se hace?
« Última modificación: Septiembre 07, 2014, 01:09:08 pm por Expermicid »

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #1 en: Mayo 14, 2013, 07:23:03 pm »
El 1% es el tamaño del archivo dividido entre 100  ::)

un saludo!

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 121
  • Actividad:
    1.67%
  • Reputación 0
  • belial grimoire
    • Ver Perfil
« Respuesta #2 en: Mayo 14, 2013, 07:45:34 pm »
entonces tengo que dividir  k = tam/100 y guardarlo en una variable y hacer una variable aparte que vaya avanzando (i++)?

acaso tendria que hacer un if que compare (i == k) y aumente a 1% cada vez que i sea igual a k? ò acaso hay algo mas en lo que deberia pensar aparte de eso?


Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: red_ink@hotmail.es
« Respuesta #3 en: Mayo 15, 2013, 02:57:37 am »
Una regla de tres,
El tamaño es 100%
La posición es X
X=(posición*100)/tamaño

Donde posición seria la posición en un determinado instante.

Un pequeño ejemplo:

Código: C
  1. #include <stdio.h>
  2. #include <unistd.h>
  3.  
  4. int main(int argc, char *ARGV[])
  5. {
  6.         unsigned int tamano;
  7.  
  8.         FILE *archivo=No tienes permisos para ver links. Registrate o Entra con tu cuenta(ARGV[1], "r");
  9.        
  10.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo, 0, SEEK_END);
  11.         tamano=No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo);
  12.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo, 0, SEEK_SET);
  13.         while(!No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo))
  14.         {
  15.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo);
  16.                 if(No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo)%(tamano/100)==0)
  17.                 {
  18.                         No tienes permisos para ver links. Registrate o Entra con tu cuenta("Leido el %i%% del archivo\r", (int)((No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo)*100)/tamano));
  19.                         No tienes permisos para ver links. Registrate o Entra con tu cuenta(stdout); //~ Si no limpias el buffer no se muestra nada
  20.                         sleep(1); //~ Una pequeña pausa para que veas como crece el porcentaje
  21.                 }
  22.         }
  23.        
  24.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(archivo);
  25.         return 0;
  26. }
  27.  

Sa1uDoS

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« Respuesta #4 en: Mayo 15, 2013, 08:26:11 am »
Un ejemplo simple para que lo comprendas.
Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int total = 1000; // Numeros pares
  7.     int i;
  8.     int Parte;
  9.     int porcentaje = 0;
  10.  
  11.  
  12.     Parte = (total/100);
  13.  
  14.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("El 1%% = %i\n",Parte);
  15.  
  16.     for (i=0;i<=total;i+=Parte)
  17.     {
  18.  
  19.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("i = %i, Porcentaje = %i%%\n",i,porcentaje);
  20.         porcentaje += 1;
  21.     }
  22.  
  23.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("PAUSE");
  24.  
  25.     return 0;
  26. }

Para numeros impares solo tendrías que redondear de cuanto serían las partes.

un saludo.
« Última modificación: Mayo 15, 2013, 08:30:18 am por mDrinky »

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 7799
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1655
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2238
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3047
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 3052
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made