Fórum TEMPO ESTIMADO DE UM PROCESSO NO PROGRESSBAR (P/EXPERTS) #365137
15/10/2008
0
Aguém têm algum exemplo ou até mesmo onde posso encontrar a literatura sobre isso, mesmo que envolva matemática pura... Gostaria de contar com a ajuda de todos.
hehehe, estou precisando dormir, me ajudem...
Abraço a todos..... 8)
Juniorvieira
Curtir tópico
+ 0Posts
16/10/2008
Marcosrocha
[b:403719b30b]Etapa1[/b:403719b30b]
(Horário de Inicio x Registros Processados) / Quantidade Total de Registros
[b:403719b30b]Etapa2[/b:403719b30b]
(Quantidade Total de Registros / Registros Processados) / Resultado da Conta 1
Este cálculo irá te retornar o tempo em segundos (se eu não estou enganado). Aí você divide por 60 e tem o tempo em minutos.
No caso de Cópia de Arquivo, substituir ´Quantidade Total de Registros´ por ´Tamanho do Arquivo´ e ´Registros Processados´ por ´Tamanho Copiado´ e por aí vai...
Gostei + 0
16/10/2008
Juniorvieira
(Horário de Inicio x Registros Processados) / Quantidade Total de Registros
(Quantidade Total de Registros / Registros Processados) / Resultado da Conta 1
:arrow: Obrigado, Marcos Rocha. Legal o que vc postou. eu achava que tinha um jeito de estipular o processo pelo tempo que ele dura no processador. ou algo do genero. Pq os processos sofrem I/O e prempção logo daria pra calcular até que parte do processo já ocorreu. Mas é meio viajem né ??? heheheh As vezes eu faço uns desafios pra mim desse tipo hehe vou acabar adoecendo kkkkk
Gostei + 0
16/10/2008
Marcosrocha
Pegar a Hora+Minuto+Segundos do Início do Processo e comparar a Quantidade Total com a Quantidade de Registros Processados.
E uma correção, na etapa 2 é:
(Quantidade Total de Registros / Registros Processados) * Resultado da Conta 1
Mas como disse, parece que não deu certo o cálculo. Caso eu encontre algo a respeito, eu volto a postar.
Gostei + 0
16/10/2008
Emerson Nascimento
horainicio := datetime; total := totaldebytes; // ou de registros, ou de qualquer outra coisa saldo := total; processado := 0; tempoestimado := 0; tempodecorrido := 0; while processado < total do begin // a variável processado precisa acumular o que está sendo processado processado := processado + soma_o_total_executado; saldo := saldo - processado; tempodecorrido := secondsbetween(now, horainicio); tempoestimado := saldo * (processado / tempodecorrido); labelx.caption := formatfloat(´,#0.00 segundos´, tempoestimado); application.processmesages; end;
Gostei + 0
17/10/2008
Juniorvieira
Gostei + 0
17/10/2008
Facc
D2006 e Indy9
Gostei + 0
17/10/2008
Emerson Nascimento
Gostei + 0
18/10/2008
Facc
Certa vez achei aqui no forum que pegava o tamanho do email a ser enviado, mas não consegui implementar.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)