Author Topic: Как сделать?  (Read 6978 times)

0 Members and 1 Guest are viewing this topic.

Prorok.18

  • Guest
Как сделать?
« on: June 18, 2013, 09:41:49 AM »
Как сделать, чтоб кликер в конце работы скрипта открывал лог и выводил затраченное на выполнение скрипта время?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как сделать?
« Reply #1 on: June 18, 2013, 11:37:49 AM »
Code: (clickermann) [Select]
$st = $_ms // это в начале скрипта

waitms(500)  // здесь твой скрипт

print("Затрачено ",$_ms - $st, " мс") // это в конце
LOGSHOW (1)
HALT

А если хочешь чтоб в секундах было то замени $_ms на $_time_t

Prorok.18

  • Guest
Re: Как сделать?
« Reply #2 on: June 18, 2013, 02:10:45 PM »
Можно как-нить тоже самое в HINTPOPUP вывести?

Как в минутах?

Так вроде норм. Даже работает..

Code: (clickermann) [Select]
$st = $_time_t // это в начале скрипта

waitms(500)  // здесь твой скрипт

print("Затрачено ", INT (($_time_t-$st)/60), " мин. ",$_time_t-$st, " сек") // это в конце

LOGSHOW (1)

HALT
« Last Edit: June 18, 2013, 03:02:01 PM by Prorok.18 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как сделать?
« Reply #3 on: June 18, 2013, 02:46:43 PM »
Можно как-нить тоже самое в HINTPOPUP вывести?
HINTPOPUP(блаблабла), а в чём вопрос то?

Как в минутах?
1. раздели секунды на минуты
2. умножь милисекунды на 1000


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как сделать?
« Reply #4 on: June 18, 2013, 03:06:41 PM »
тогда уж так:
Code: (clickermann) [Select]
print("Затрачено ", INT (($_time_t-$st)/60), " мин. ", $_time_t-(INT(($_time_t-$st)/60))*60, " сек")


Prorok.18

  • Guest
Re: Как сделать?
« Reply #5 on: June 18, 2013, 03:09:17 PM »
Вот еще вариант:

Code: (clickermann) [Select]
print("Затрачено ", $_time_m-$m, " мин. ",(($_time_t-$st)/60-($_time_m-$m))*60, " сек")
VINT, хотя твой вариант тоже не плох. Спасибо  :)

« Last Edit: June 18, 2013, 03:11:37 PM by Prorok.18 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как сделать?
« Reply #6 on: June 18, 2013, 03:13:40 PM »
что значит "не плох"  :)
У тебя выводится время в минутах и общее количество секунд, например 3 мин 184 сек
это в 1 варианте.
Во втором ты не учитываешь что абсолютное число минут и секунд может быть меньше в конце теста.
Пример начал ты его в 15:10:55, а закончил в 12:06:40
« Last Edit: June 18, 2013, 03:17:05 PM by Vint »


Prorok.18

  • Guest
Re: Как сделать?
« Reply #7 on: June 18, 2013, 03:16:20 PM »
VINT, посмотри внимательнее в предыдущем коде там всё работает как надо.

Вот окончательный вариант, может кому-то пригодится   ;):
Code: (clickermann) [Select]
print("Затрачено ", $_time_m-$m, " мин. ",($_time_t-$st)-(($_time_m-$m)*60), " сек")
Так же можно добавить часы, дни, года, века...  Кому что надо.
« Last Edit: June 18, 2013, 03:29:29 PM by Prorok.18 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как сделать?
« Reply #8 on: June 18, 2013, 03:30:40 PM »
последний вариант неправильно
начни в 9 мин 55 сек и закончи в 10 мин 05 сек. Что получится?
По твоему подсчёту получается 1 мин. -110 сек
« Last Edit: June 18, 2013, 03:48:01 PM by Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как сделать?
« Reply #9 on: June 18, 2013, 04:19:16 PM »
Что за ерунду вы тут понаписали????

Вот как надо!

Code: (clickermann) [Select]
$st = $_time_t // это в начале скрипта

wait(5)  // здесь твой скрипт


$time = $_time_t - $st // это в конце
$hour = 0
while($time > 59)
   $time = $time - 60
   INC($hour, 1)
end_cyc
LOGWRITE ("Затрачено: ", $hour, " часов ", $time, " мин")
HINTPOPUP(STRCONCAT("Затрачено: ", $hour, " часов ", $time, " мин"))
LOGSHOW (1)
HALT
« Last Edit: June 18, 2013, 04:21:08 PM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как сделать?
« Reply #10 on: June 18, 2013, 04:25:02 PM »
Что значит "вы"? Не мешай человек  :)
"Мы" тут балуемся...
Плавно подводим к правильному результату.


Prorok.18

  • Guest
Re: Как сделать?
« Reply #11 on: June 18, 2013, 10:03:59 PM »
ORAVEN, спасибо. Это то что надо :). Правда, у тебя там немного путаницы в коде, даже не в коде, а во времени, но это не важно, если захочешь - разберёшься

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как сделать?
« Reply #12 on: June 18, 2013, 11:18:28 PM »
ORAVEN, спасибо. Это то что надо :). Правда, у тебя там немного путаницы в коде, даже не в коде, а во времени, но это не важно, если захочешь - разберёшься

Действительно, просто я вырвал по быстрому кусок из другого скрипта...

Вот доделанный с часами минутами и секундами. Можно в принципе и дни прикрутить...

Code: (clickermann) [Select]
$st = $_time_t // это в начале скрипта

wait(2)  // здесь твой скрипт


$sek = $_time_t - $st // это в конце
$hour = 0
$min = 0

while($sek > 3599)
   INC($sek,-3600)
   INC($hour, 1)
end_cyc

while($sek > 59)
   INC($sek,-60)
   INC($min, 1)
end_cyc

LOGWRITE ("Затрачено: ", $hour, "ч ", $min, "м ", $sek, "с")
HINTPOPUP(STRCONCAT("Затрачено: ", $hour, "ч ", $min, "м ", $sek, "с"))
LOGSHOW (1)
HALT

В итоге в логе имеем такой вид:
Code: [Select]
Затрачено: 3ч 20м 15с