Author Topic: Ускорение работы с файлом.  (Read 19210 times)

0 Members and 1 Guest are viewing this topic.

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Ускорение работы с файлом.
« Reply #45 on: October 13, 2014, 11:23:37 PM »
Вот проверка только на цифры и от пяти символов и более. В логе отобразится что не так и что за стрjка.

Code: (clickermann) [Select]
WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения
WAITMS(100)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
WAITMS(50)

IF(STRLEN($strclip) > 4) // длинна сторки от 5и символов и более
   $strclip2 = STRFILTER($strclip, "1234567890", 0)
   IF(STRLEN($strclip2) > 1)
      LOGWRITE ("Ошибка: что то кроме цифр")
      LOGWRITE ($strclip)
      HALT
   END_IF
ELSE
   LOGWRITE ("Ошибка: Пустой буфер или короткая строка")
   LOGWRITE ($strclip)
   HALT
END_IF

IF(TFCOUNT ("input.txt") > 0)
   $comp = TFREAD("input.txt", 1)
   WAITMS(50)
   $action = STRPOS($comp, $strclip)
   IF($action > 0)
      LOGWRITE ("Совпадение")
      // сдесь действие если строка совпала
   ELSE
      TFWRITE("input_bak.txt", $comp) // запись резервной копии
      TFWRITE("input_bak.txt", " ")
      TFDELETE ("input.txt", 1)
      WAITMS(50)
      TFWRITE("input.txt", STRCONCAT($comp,$strclip," "))
      WAITMS (50)
   END_IF
ELSE
   TFWRITE("input.txt", STRCONCAT($strclip," "))
   WAITMS (50)
END_IF



Привет. Опять у меня новая проблема) Помоги, пожалуйста, подскажи, что исправить в этом скрипте, чтобы буфер анализировался не на количество символов, а на величину числа? То есть задаем в скрипте число, к примеру 356 и если число в буфере меньше, например 345, то выполняется заданная команда.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ускорение работы с файлом.
« Reply #46 on: October 14, 2014, 12:58:02 AM »
Теперь в базе данных разделителями считаются запятые, поэтому если ты будешь использовать предыдущую базу данных нужно в ней заменить все пробелы запятыми. Это легко сделать в обычном блокноте командой "Заменить".

Code: (clickermann) [Select]
//==== НАСТРОЙКИ =====================
$num = 356 // допук чисел меньше этого
//====================================

WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения
WAITMS(100)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
WAITMS(50)

IF(STRLEN($strclip) > 0) // длинна сторки от 5и символов и более
   $strclip2 = STRFILTER($strclip, "1234567890", 0)
   IF(STRLEN($strclip2) > 1)
      HINTPOPUP("что то кроме цифр!", "Ошибка")
      LOGWRITE ("Ошибка: что то кроме цифр")
      LOGWRITE ($strclip)
      HALT
   END_IF
ELSE
   HINTPOPUP("Пустой буфер!", "Ошибка")
   LOGWRITE ("Ошибка: Пустой буфер!")
   LOGWRITE ($strclip)
   HALT
END_IF

IF(INT($strclip) < $num)
   IF(TFCOUNT ("input.txt") > 0)
      $comp = TFREAD("input.txt", 1)
      WAITMS(50)
      $action = STRPOS($comp, STRCONCAT(",",$strclip,","))
      IF($action > 0)
         LOGWRITE ("Совпадение")
         // сдесь действие если строка совпала
         
      ELSE
         TFWRITE("input_bak.txt", $comp) // запись резервной копии
         TFWRITE("input_bak.txt", " ")
         TFDELETE ("input.txt", 1)
         WAITMS(50)
         TFWRITE("input.txt", STRCONCAT($comp,$strclip,","))
         WAITMS (50)
      END_IF
   ELSE
      TFWRITE("input.txt", STRCONCAT(",",$strclip,","))
      WAITMS (50)
   END_IF
ELSE
   // Если число выше заданного все действия пропускаются
   LOGWRITE ("число выше заданного.")
END_IF
« Last Edit: October 14, 2014, 12:59:48 AM by Oraven »

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Ускорение работы с файлом.
« Reply #47 on: October 14, 2014, 06:01:44 AM »
Теперь в базе данных разделителями считаются запятые, поэтому если ты будешь использовать предыдущую базу данных нужно в ней заменить все пробелы запятыми. Это легко сделать в обычном блокноте командой "Заменить".

Code: (clickermann) [Select]
//==== НАСТРОЙКИ =====================
$num = 356 // допук чисел меньше этого
//====================================

WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения
WAITMS(100)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
WAITMS(50)

IF(STRLEN($strclip) > 0) // длинна сторки от 5и символов и более
   $strclip2 = STRFILTER($strclip, "1234567890", 0)
   IF(STRLEN($strclip2) > 1)
      HINTPOPUP("что то кроме цифр!", "Ошибка")
      LOGWRITE ("Ошибка: что то кроме цифр")
      LOGWRITE ($strclip)
      HALT
   END_IF
ELSE
   HINTPOPUP("Пустой буфер!", "Ошибка")
   LOGWRITE ("Ошибка: Пустой буфер!")
   LOGWRITE ($strclip)
   HALT
END_IF

IF(INT($strclip) < $num)
   IF(TFCOUNT ("input.txt") > 0)
      $comp = TFREAD("input.txt", 1)
      WAITMS(50)
      $action = STRPOS($comp, STRCONCAT(",",$strclip,","))
      IF($action > 0)
         LOGWRITE ("Совпадение")
         // сдесь действие если строка совпала
         
      ELSE
         TFWRITE("input_bak.txt", $comp) // запись резервной копии
         TFWRITE("input_bak.txt", " ")
         TFDELETE ("input.txt", 1)
         WAITMS(50)
         TFWRITE("input.txt", STRCONCAT($comp,$strclip,","))
         WAITMS (50)
      END_IF
   ELSE
      TFWRITE("input.txt", STRCONCAT(",",$strclip,","))
      WAITMS (50)
   END_IF
ELSE
   // Если число выше заданного все действия пропускаются
   LOGWRITE ("число выше заданного.")
END_IF
Спасибо, но немного не то. Мне нужно, чтобы порядок действия скрипта был как и прежде, но если число в буфере меньше заданного - выполнялось другое действие, конкретно для моей задачи это закрытие вкладки (ctrl+f4) В общем мне надо, чтобы скрипт работал только с числами выше заданного, если оно ниже - то вкладка закрывается и скрипт запускается заново на следующей вкладке.
« Last Edit: October 14, 2014, 06:14:21 AM by justitdo »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ускорение работы с файлом.
« Reply #48 on: October 14, 2014, 01:04:43 PM »
А сразу об этом написать не судьба?

Code: (clickermann) [Select]
//==== НАСТРОЙКИ =====================
$num = 356 // допук чисел больше этого
//====================================

WAIT(1)

LCLICK(1184,64)  // клик по адресной строке для выделения
WAITMS(100)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
WAITMS(50)

IF(STRLEN($strclip) > 0)
   $strclip2 = STRFILTER($strclip, "1234567890", 0)
   IF(STRLEN($strclip2) > 1)
      HINTPOPUP("что то кроме цифр!", "Ошибка")
      LOGWRITE ("Ошибка: что то кроме цифр")
      LOGWRITE ($strclip)
      HALT
   END_IF
ELSE
   HINTPOPUP("Пустой буфер!", "Ошибка")
   LOGWRITE ("Ошибка: Пустой буфер!")
   LOGWRITE ($strclip)
   HALT
END_IF

IF(INT($strclip) > $num) // если число больше заданного
   IF(TFCOUNT ("input.txt") > 0)
      $comp = TFREAD("input.txt", 1)
      WAITMS(50)
      $action = STRPOS($comp, STRCONCAT(",",$strclip,","))
      IF($action > 0)
         LOGWRITE ("Совпадение")
         // сдесь действие если строка совпала
         
      ELSE
         TFWRITE("input_bak.txt", $comp) // запись резервной копии
         TFWRITE("input_bak.txt", " ")
         TFDELETE ("input.txt", 1)
         WAITMS(50)
         TFWRITE("input.txt", STRCONCAT($comp,$strclip,","))
         WAITMS (50)
      END_IF
   ELSE
      TFWRITE("input.txt", STRCONCAT(",",$strclip,","))
      WAITMS (50)
   END_IF
ELSE
   // если меньше заданного
   KEYDOWN (#CTRL) // Ctrl+F4
   WAITMS (50)
   KEYDOWN (#F4)
   WAITMS (50)
   KEYUP (#F4)
   KEYUP (#CTRL)
   WAIT(1)
END_IF
« Last Edit: October 14, 2014, 01:06:21 PM by Oraven »

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Ускорение работы с файлом.
« Reply #49 on: October 14, 2014, 01:25:20 PM »
А сразу об этом написать не судьба?

Да я как-бы об этом сразу и писал, просто видимо не ясно выразился и ты не так понял. Прочитай внимательно)
То есть задаем в скрипте число, к примеру 356 и если число в буфере меньше, например 345, то выполняется заданная команда.
Заданная команда в моем случае это закрытие вкладки (ctrl+F4)
Спасибо)
Я, кстати сам пробовал точь в точь как ты написал, но у меня почему-то вкладки не прекращались закрываться, пока не остановишь скрипт вручную, сейчас твой попробую.
« Last Edit: October 14, 2014, 02:39:32 PM by justitdo »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ускорение работы с файлом.
« Reply #50 on: February 08, 2017, 09:42:18 AM »
Code: (clickermann) [Select]
$str = FROMCLIP()
$str = STRCUT2($str, STRPOS($str, "sid")+4, STRLEN($str))
$str = STRCUT2($str, 1, STRPOS($str, "&")-1)
LOGWRITE ($str)

HALT