Author Topic: команда паузы?системный таймер?  (Read 1706 times)

0 Members and 1 Guest are viewing this topic.

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
команда паузы?системный таймер?
« on: March 26, 2018, 12:27:14 PM »
и так сразу два вопроса:
1.вот есть команда HALT остановка скрипта и HALT(1) с закрытиям а есть ли команда паузы ?
2.системный таймер $_ms вот делаю я в верху которое выполняеться только раз $start = $_ms и в конце чтоб выдало в лог
LOGWRITE ("Время выполнения ", $_ms-$start )
и показивает оно мне в мс  а что можно придпринять чтоб показивало оно в минутах а лучше допустим часов минут секунд  ???

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: команда паузы?системный таймер?
« Reply #1 on: March 26, 2018, 01:52:09 PM »
1. С какой целью? Как потом снимать? Есть же WAIT() и WAITMS().
Ну сделай WAIT(100000) - 27.7 часов пауза.

Можно и обычные горячие клавиши прожимать ALT+A. Только снимать с паузы придётся пуском.

Удобней всего просто сделать цикл ожидания нажатия определённой клавиши
Code: (clickermann) [Select]
// ждём нажатия пробела
IF(ISKEYDOWN(#SPACE) = 0)
    WAITMS(100)
END_IF

2. Библиотеки пользовательских подпрограмм
Архив Libs for 4.11 v 1.2.7z. Подключить файл logger.cms
Code: (clickermann) [Select]
#include "logger.cms"подпрограмма timeprint переводит мс в час:мин:сек,мс
или чуть более общая print_timeaction как раз для замеров

Если лень копаться, то вот эти подпрограммы:
Code: (clickermann) [Select]
//==============================================================================
//===  Вывод времени выполнения ms в формате час:мин:сек,мс ====================
SUB(timeprint, $tt_print)
   // Пример вызова:
   // timeprint(12345)
   IF($tt_print > 999)
      $timesec = $tt_print/1000
      $hours = int($timesec/3600)
      $minuts = int(($timesec - ($hours*3600))/60)
      $sec = ($tt_print - ($hours*3600*1000) - ($minuts*60*1000)) / 1000
      LOGWRITE($hours, ":" , $minuts , ":" , $sec)
   END_IF
END_SUB

//==============================================================================
//===  Вывод времени выполнения  ===============================================
SUB(print_timeaction, $actionnamet, $tt_search)
   // Пример вызова:
   // $timer1 = $_ms
   // ...
   // print_timeaction("тест 1", $_ms - $timer1)
   LOGWRITE("===============  время выполнения  ===============")
   LOGWRITE("время выполнения ", $actionnamet, " : ", $tt_search, " мс")
   timeprint($tt_search)
   LOGWRITE(" ")
END_SUB

//==============================================================================

Вывод
Code: [Select]
13:57:09 ===============  время выполнения  ===============
13:57:09 время выполнения тест 1 : 65432 мс
13:57:09 0:1:5.432
13:57:09 
Хочешь, буквы допиши.
« Last Edit: March 26, 2018, 01:58:28 PM by Vint »


Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: команда паузы?системный таймер?
« Reply #2 on: March 26, 2018, 02:35:11 PM »
спасибо :) :) :) :) :) :) :) :)
нз как правильно должно было быть но сделал просто вот так
 
Code: (clickermann) [Select]
SUB(timeprint, $tt_print)
    IF($tt_print > 999)
         $timesec = $tt_print/1000
         $hours = int($timesec/3600)
         $minuts = int(($timesec - ($hours*3600))/60)
         $sec = ($tt_print - ($hours*3600*1000) - ($minuts*60*1000)) / 1000
         LOGWRITE($hours, ":" , $minuts , ":" , $sec)
      END_IF
   END_SUB
//
timeprint($_ms-$start)
вроде все правильно выдает :D