Author Topic: Как сохранить Лог на экране  (Read 3982 times)

0 Members and 2 Guests are viewing this topic.

algirdas

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Как сохранить Лог на экране
« on: February 15, 2018, 01:52:18 PM »
Что сделать перед HALT(1), чтобы оставить Лог на экране ?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как сохранить Лог на экране
« Reply #1 on: February 15, 2018, 01:53:49 PM »
Напиши в начале скрипта директиву #logfile тогда лог будет писаться в файл рядом со скриптом.
Code: (clickermann) [Select]
#logfile

algirdas

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: Как сохранить Лог на экране
« Reply #2 on: February 26, 2018, 03:52:12 PM »
  Вопрос был не в файл, а на экране.  Задача - после окончания работы представить в в окне итоговый отчет.
 Можно заменить halt(1) на halt, в лого экране сохранить файл, закрыть clickermann и запустив блокнот получить искомое. Можно через лог файл (v4.13.10b)

#logfile("log.txt")
logclear
tfclear("log.txt")
// WORK : LOGSHOW(1,$x1, $y1 )
// WORK : LOGWTITE($STR1 ). PRINT ($STR2)
logshow(0)
execute("log.txt")
$hw = wndfind("Блокнот")
wndpos( $hw, $x1, $y1)
wndsize( $hw, $x2, $y2)
wndbump ($hw)
halt(1)

 Может есть смысл ввести команду HALT(2) -  закрыть clickermann без удаления лого окна c экрана. И может можно запретить команде PRINT записывать в файл (отображаясь только в окне), позволяя очистить итоговый отчет от излишних рабочих подробностей. И где-то отметить, что запись типа #logfile("D:\log.txt") игнорируется.
 Аксакалам предлагается перенести сообщение в Предложения.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как сохранить Лог на экране
« Reply #3 on: February 27, 2018, 08:15:42 AM »
В кликере есть функция "TFWRITE" позволяющая писать нужную тебе инфу в файл.
Для удобства можно написать подпрограмму логирования

Code: (clickermann) [Select]
// Подпрограмма логирования
SUB(Log, $logstr, $logname, $checkLog, $LogDivider)
   // Параметры логирования
   // 1 - текст лога
   // 2 - Имя файла лога
   // 3 - переключатель логирования (1-3)
   //     (1 логирование без записи в файл)
   //     (2 логирование с записью в файл)
   //     (3 только запись в файл)
   // 4 - запись разделителя строк в файл лога (0-1)
   // Образец
   // Log("Текст лога","Log.txt",1,0)
   
   SWITCH($checkLog)
   CASE(1)
      LOGWRITE ($logstr)
   CASE(2)
      LOGWRITE ($logstr)
      TFWRITE($logname, $logstr)
   CASE(3)
      TFWRITE($logname, $logstr)
   END_SWITCH
   IF($LogDivider = 1)
      SWITCH($checkLog)
      CASE(1)
         LOGWRITE (" ")
         LOGWRITE ("========================")
         LOGWRITE (" ")
      CASE(2)
         LOGWRITE (" ")
         LOGWRITE ("========================")
         LOGWRITE (" ")
         TFWRITE($logname, " ")
         TFWRITE($logname, "========================")
         TFWRITE($logname, " ")
      CASE(3)
         TFWRITE($logname, " ")
         TFWRITE($logname, "========================")
         TFWRITE($logname, " ")
      END_SWITCH
   END_IF
END_SUB

$STR1 = 100
$STR2 = 500

// Примеры записи в лог

// Вывод текста в лог без записи в файл
Log("Текст лога","Log.txt",1,0)

// Вывод значения переменной в лог и файл
Log($STR1,"Log.txt",2,0)
Log($STR2,"Log.txt",2,0)

// Вывод значения двух переменных в другой файл без записи лога с разделителем строк.
Log(STRCONCAT($STR1, " ", $STR2),"Log 2.txt",3,1)

HALT



« Last Edit: February 27, 2018, 08:20:07 AM by Oraven »