Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Цитата:
текущую скорость удобней измерять через AdLib():
Не всегда, а что если в скрипте уже используется Adlib для других целей?
Хотя это можно совмещать... но почему бы не поместить функцию в цикл, и передавать ей как параметр чтение байтов, и возвращать с неё данные о скорости? это мне кажется лучший вариант...

Код: Выделить весь код
Global $InetSpeed = 0, $InetGetBytesRead = 0, $InetTimeStamp = 0, $begin = TimerInit()

InetGet("http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.2.4.4-setup.exe", "test.exe", 1, 1)

While @InetGetActive
    Sleep(200)
    $Bytes = @InetGetBytesRead
    $InetSpeed = _InetGetSpeed($Bytes)
    $AverageSpeed = $Bytes*1000 / TimerDiff($begin)
    TrayTip("Downloading", "Speed = " & Round($InetSpeed/1024, 1), 10, 16)
Wend

MsgBox(0, "", "Avarage speed is: " & Round($AverageSpeed/1024, 1))

Func _InetGetSpeed($Bytes)
    If @InetGetActive Then
        If $InetTimeStamp Then
            Local $Ticks = TimerDiff($InetTimeStamp)
            If  $Ticks > 0 Then $InetSpeed = ($Bytes-$InetGetBytesRead)*1000 / $Ticks
        EndIf
        $InetGetBytesRead = $Bytes
        $InetTimeStamp = TimerInit()
    Else
        $InetTimeStamp = 0
        $InetGetBytesRead = 0
        $InetSpeed = 0
    EndIf
    Return $InetSpeed
EndFunc
Остаётся один главный вопрос - Насколько это точный подсчёт? и можно ли “доверять” этим данным?

Спасибо за примеры, вроде всё работает как надо .

P.S
А среднюю скорость мне нужно не в цикле отображать, а подсчитать её для конечного вывода (чтобы показать юзеру с какой скоростью (средней) закаивался файл за весь промежуток закачки).


Diamond
По теме словарей (Dictionary):
http://www.autoitscript.com/forum/in...6&#entry352256

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 03:02, 13-06-2007 | #13