Вверх ↑
Этот топик читают: Гость
Ответов: 130
Рейтинг: 3
#1: 2010-12-11 20:18:11 ЛС | профиль | цитата
Я делаю программку для скачивания файлов по http.
Вот что у меня получилось: code_21771.txt
Хотелось бы, чтобы программа выводила оставшееся время до окончания закачки и скорость закачки. Кто знает как это сделать?
карма: 0

0
файлы: 1code_21771.txt [1.4KB] [209]
Ответов: 4641
Рейтинг: 334
#2: 2010-12-11 20:28:17 ЛС | профиль | цитата
Dima писал(а):
время до окончания закачки

пару темами назад готовое решение по скачиванию.
во времени до окончания.. математику в руки.

А если ссответсвующий вопрос задать поиску по форуму... ух сколько схем этих доунлоадеров.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 130
Рейтинг: 3
#3: 2010-12-11 21:01:20 ЛС | профиль | цитата
Ravilr писал(а):
пару темами назад готовое решение по скачиванию
а ссылочку можно?
карма: 0

0
Ответов: 970
Рейтинг: 270
#4: 2010-12-11 21:04:39 ЛС | профиль | цитата
[flood]сейчас спал интерес на медиаплееры и все начали свои даунлоадеры делать [/flood]
карма: 0

1
Голосовали:Ravilr
Ответов: 130
Рейтинг: 3
#5: 2010-12-11 21:33:35 ЛС | профиль | цитата
Genius, лучше бы ответил на мой вопрос...
карма: 0

0
Ответов: 1379
Рейтинг: 86
#6: 2010-12-11 21:44:02 ЛС | профиль | цитата
Dima, совсем недавние темы.
Download не качает
Перехват закачек как в Download Master
карма: 0

0
Ответов: 4641
Рейтинг: 334
#7: 2010-12-11 21:48:09 ЛС | профиль | цитата
Dima писал(а):
чтобы программа выводила оставшееся время до окончания закачки и скорость закачки

Dima писал(а):
лучше бы ответил на мой вопрос...

ответь на вопрос.

1. Как узнать скорость закачки если известно количество скаченных байт, секунду назад и кол-во скаченных байт через секунду или 10 секунд ?
2. Зная скрость скачивания и размер скачиваемого файла, как узнать время оставшее до окончание закачки?

Если ответишь на вопросы, то приведу тебе примеры.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 130
Рейтинг: 3
#8: 2010-12-11 22:18:53 ЛС | профиль | цитата
Ravilr писал(а):
ответь на вопрос
отвечаю:
1. Вычесть от количества скаченных байт сейчас, то что было секунду назад и разделить на 1024. Получим кбайт/сек.
2. Разделить размер файла в килобайтах на скорость полученную в шаге 1. Получим время в секундах.

Я пробовал сделать по данному алгоритму схемку в hiasm, но я запутался и у меня ничего не получилось Поэтому и создал эту тему.

[flood]жду пример[/flood]
карма: 0

0
Ответов: 4641
Рейтинг: 334
#9: 2010-12-11 23:06:29 ЛС | профиль | цитата
Dima писал(а):
Вычесть от количества скаченных байт сейчас, то что было секунду назад

code_21772.txt


Dima писал(а):
Разделить размер файла в килобайтах на скорость полученную в шаге 1. Получим время в секундах.

HTTP_Get
в примере в справке показано как получить размер файла до закачки. Дальше надеюсь сам.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
1
файлы: 1code_21772.txt [748B] [102]
Голосовали:Dima
Ответов: 273
Рейтинг: 29
#10: 2010-12-11 23:37:37 ЛС | профиль | цитата
Add(MainForm,2953706,658,371)
{
Width=397
Height=73
Position=1
}
Add(HTTP_Get,14238324,287,196)
{
link(onStatus,5776112:doValue,[(338,202)(338,181)])
link(onURLSize,8499252:doValue,[])
link(onStop,773702:doStop,[(328,223)(328,232)(245,232)(245,335)])
link(URL,964605:Text,[])
link(FileName,2573298:Value,[(300,188)(244,188)])
}
Add(Hub,250103,203,189)
{
OutCount=3
link(onEvent1,2573298:doValue,[(227,195)(227,153)])
link(onEvent2,14238324:doDownload,[])
link(onEvent3,773702:doTimer,[(240,209)(240,328)])
}
Add(Memory,8499252,392,210)
{
}
Add(Memory,5776112,357,175)
{
}
Add(Math,16576722,357,329)
{
OpType=3
link(onResult,7771969:doOperation,[])
link(Op1,12034444:Var2,[])
link(Op2,10048817:Var1,[(370,261)])
}
Add(GProgressBar,7516180,441,329)
{
Top=20
Width=390
}
Add(Hub,9113640,294,322)
{
OutCount=3
link(onEvent1,12148267:doCalcDelta,[(315,328)(315,286)])
link(onEvent2,16576722:doOperation,[])
link(onEvent3,9914458:doStrCat,[(346,342)(346,377)])
}
Add(Button,1589744,119,189)
{
Left=335
Caption="Start"
link(onClick,9177073:doExecute,[])
}
Add(Edit,964605,287,140)
{
Width=335
Text="http://dlh.softportal.com/b7/0/1/aadc7fde12a370403bf8a2c5d6a321f8/setup_av_free_rus.exe"
}
Add(SDialog,9177073,161,189)
{
FileName="avast.exe"
link(onExecute,250103:doEvent1,[])
}
Add(GetDataEx,12034444,357,266)
{
link(Data,5776112:Value,[])
}
Add(Math,2540144,441,280)
{
OpType=3
Op2=1024
ResultType=0
link(onResult,1153033:doStrCat,[])
}
Add(StrCat,1153033,490,280)
{
Str2=" Kb/s"
link(onStrCat,1886545:doOperation,[])
}
Add(StrCat,9914458,441,371)
{
Str2="% ("
link(onStrCat,15955444:doStrCat,[])
link(Str1,7516180:Position,[])
}
Add(StrCat,15955444,483,371)
{
link(onStrCat,10314555:doStrCat,[])
link(Str2,1153033:Result,[])
}
Add(StrCat,10314555,525,371)
{
Str2=") time left: "
link(onStrCat,16718456:doStrCat,[])
}
Add(Memory,2573298,238,147)
{
link(onData,14238324:GetURLSize,[(277,153)(277,216)])
}
Add(MMTimer,773702,252,322)
{
Enable=1
link(onTimer,9113640:doEvent1,[])
}
Add(Math,7771969,399,329)
{
OpType=2
Op2=100
ResultType=0
link(onResult,7516180:doPosition,[])
}
Add(StrCat,16718456,567,371)
{
link(onStrCat,14996444:doStrCat,[])
link(Str2,15475571:Result,[])
}
Add(StrCat,14996444,609,371)
{
Str2="s..."
link(onStrCat,2953706:doCaption,[])
}
Add(Math,1886545,574,280)
{
@Hint=#16:Осталось скачать|
OpType=1
ResultType=0
link(Op1,10048817:Var3,[(580,261)])
link(Op2,12034444:Var3,[(587,271)])
}
Add(GetDataEx,10048817,392,256)
{
link(Data,8499252:Value,[])
}
Add(Math,15475571,574,322)
{
OpType=3
ResultType=0
link(Op1,1886545:Result,[])
}
Add(SampleDelta,12148267,322,280)
{
link(onCalcDelta,1187935:doEvent1,[])
link(Data,12034444:Var1,[(328,271)])
}
Add(Hub,1187935,406,280)
{
link(onEvent1,2540144:doOperation,[])
link(onEvent2,15475571:doOperation,[(437,293)(437,328)])
}


Вот пример... Показывает % скачки, скорость и сколько время до окончания
ЗЫ Ух ты, а до разницы я не додумался, добавил
карма: 0

1
Голосовали:Dima
Ответов: 970
Рейтинг: 270
#11: 2010-12-12 09:37:53 ЛС | профиль | цитата
Вот пример... Показывает % скачки, скорость и сколько время до окончания
ЗЫ Ух ты, а до разницы я не додумался, добавил


только надо, наверное, не с помощью текущей скорости рассчитывать оставшееся время, а со средней (вроде так делают все даунлоадеры и браузеры):

1. Получаем скорость x
2. Получаем скорость y и складываем с x и делим на два
3. Перейти к шагу 1.
карма: 0

0
Ответов: 899
Рейтинг: 43
#12: 2010-12-26 02:17:20 ЛС | профиль | цитата
Genius писал(а):
1. Получаем скорость x
2. Получаем скорость y и складываем с x и делим на два
3. Перейти к шагу 1.

неправильное решение

1 Получаем скорость
2 Складываем со всеми предыдущими
3 Делим результат на число замеров
code_21922.txt
------------ Дoбавленo в 02.17:
сорри, у меня считается средняя скорость всей закачки
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_21922.txt [2.6KB] [187]
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)