FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Creo que el problema es la ecuación.
Debería ser: ((Largo_Archivo - Progreso_Leido) div 100) Saludos! |
#2
|
||||
|
||||
danielmj,
Cita:
El código anterior permite leer y copiar archivos de un tamaño en bytes de 2^63 - 1 = 9.223.372.036.854.775.807 (Int64), en porciones de 1024 bytes y mostrar el progreso del mismo por medio de un componente TProgressbar normalizado en un rango de 1 a 100. La clave esta en la ecuación: ProgressBar1.Position := Trunc((F1.Position/F1.Size)*100); Nota: El código fue probado con archivos menores a 2 GB y mayores a 2GB funcionando en todos los casos correctamente. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 27-09-2013 a las 03:41:16. |
#3
|
|||
|
|||
Cita:
Si es transformar a porcentaje creo que está mal... Caso 1: Trunc(512/1024*100)=>50 % Caso 2: (1024-512) div 100 =>5 ? Saludos cordiales |
#4
|
||||
|
||||
Hola, gracias por los consejos, os pongo el código...
Lo que trato de conseguir es que el progreso de la barra avance segun se divida el tamaño del archivo entre la cantidad elegida, en este caso son 2Gb, pero podrian ser 4,6 u 8,2 etc... Es en los casos donde ese tamaño es = o > a 2Gb donde falla. Siempre que sea = o < a 1Gb todo funciona perfectamente includo el progreso de la barra. Y estoy como loco haciendo variaciones en la division. He probado a dividir los 2 Gb entre 1024 para pasarlo a Kbytes, sino me devuelve el mensaje "barra de progreso fuera de rango", he probado a dividir entre 1024 el tamaño del archivo y luego el resultado dividirlo entre los 2Gb div 1024 y el resultado de esto asignarlo a la propiedad Max de la barra, pero no consigo "sacar" archivos de 2Gb a partir del archivo original de 13 Gb (es un ejemplo), solo de 2Mb. O eso, o el mensaje de "... fuera de rango". Sé que el error debe estar entre el limite de progressbar.max y la/s divisiones, pero no consigo verlo por muchas vueltas que le doy. Saludos y gracias a todos. |
#5
|
||||
|
||||
danielmj,
Cita:
El código anterior lee un archivo de cualquier tamaño en porciones (MaxInt div 1024) y muestra su progreso en un componente TProgressBar normalizado en el rango de 1 a 100. Nota: La idea es mostrar el proceso de un archivo en función porcentual y no en divisiones de su tamaño original, lo cual se adapta a cualquier tamaño de archivo hasta un máximo de 2^63 - 1. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 27-09-2013 a las 18:08:23. |
#6
|
||||
|
||||
Hola buenos dias,
Gracias nlsGarcia, siento no haber respondido antes, pero estaba fuera de España por trabajo y no he tenido tiempo de mirar nada, a parte que todo el codigo lo tenia aqui en casa. Ahora me pondre con el y veré que tal, ya te comento. Gracias y un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Numero Mayor igual , Menor igual... Problema | ZiriusB | OOP | 12 | 27-06-2011 17:31:24 |
StringGrid con columnas igual al de un archivo Excel | J@ckie | Conexión con bases de datos | 3 | 01-03-2011 15:07:20 |
En red, las BD Access ¿en con SQLs, ¿viaja el archivo completo igual que paradox...? | Wonni | Tablas planas | 4 | 17-05-2007 18:21:01 |
FireBird.- Domino que sea entero mayor o igual a cero | sakuragi | Firebird e Interbase | 1 | 08-09-2006 11:10:09 |
La impresión no se ve igual | Newbie | Impresión | 2 | 06-11-2003 02:49:55 |
|