Author Topic: проверка буфера  (Read 3791 times)

0 Members and 1 Guest are viewing this topic.

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
проверка буфера
« on: October 04, 2015, 09:23:40 AM »
что дописать?

Code: [Select]
// проверка скопированного
// скопироват с сайта цифры
waitms(100)
  lDown(271,952)
waitms(300)
  lUp(319,955)
waitms(200)
  keyDown(162) // непонятная клавиша
waitms(0)
  keyDown(#CTRL)
waitms(900)
  keyDown(#С)
waitms(300)
  keyUp(#С)
waitms(20)
  keyUp(#CTRL)
waitms(0)
  keyUp(160)
waitms(100)

// проверит цифры из буфера, скажем в буфере "916,50"

// если цифра больше 10000 сделать

  wait(2)
  move($xak ,$yak)
  waitms(380)
    lDown($xak ,$yak)
  waitms(255)
    lUp($xak ,$yak)
  waitms(2000)
  move($xk,$yk)
  waitms(228)
    lDown($xk,$yk)
  waitms(227)
    lUp($xk,$yk)
waitms(200) 
 SOUND("data/Yes.wav")

// если цифра менше 10000 сделать

else

MOVE(145,155)

// что в конце?


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: проверка буфера
« Reply #1 on: October 04, 2015, 10:50:23 AM »
Quote
keyDown(162) // непонятная клавиша
Это код левого Ctrl. Оно тебе не нужно.

Code: (clickermann) [Select]
// проверка скопированного
// скопироват с сайта цифры
lDown(271,952)
waitms(50)
lUp(319,955)
waitms(100)

KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(100)

// проверит цифры из буфера, скажем в буфере "916,50"
IF(ROUND(STRREPLACE(FROMCLIP(),",","."), 0) > 10000)
   // если цифра больше 10000 сделать
   move($xak,$yak)
   waitms(380)
   lDown($xak,$yak)
   waitms(255)
   lUp($xak,$yak)
   waitms(2000)
   move($xk,$yk)
   waitms(228)
   lDown($xk,$yk)
   waitms(227)
   lUp($xk,$yk)
   waitms(200)
   SOUND("data/Yes.wav")
   waitms(200)
ELSE
   // если цифра менше 10000 сделать
   MOVE(145,155)
END_IF

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #2 on: October 04, 2015, 10:54:19 AM »
понятно

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: проверка буфера
« Reply #3 on: October 04, 2015, 10:54:43 AM »
Опишу по подробнее
FROMCLIP() - возвращает строку из буфера.
STRREPLACE - замена текста в строке. Ты пишешь "916,50" но кликер может вычислять только с цифрами с точкой "916.50" поэтому нам нужно заменить запятую на точку
ROUND - округление числа. Отсекаем числа после точки.

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #4 on: October 04, 2015, 11:57:44 AM »
Опишу по подробнее
FROMCLIP() - возвращает строку из буфера.
STRREPLACE - замена текста в строке. Ты пишешь "916,50" но кликер может вычислять только с цифрами с точкой "916.50" поэтому нам нужно заменить запятую на точку
ROUND - округление числа. Отсекаем числа после точки.

а если там целое число? скажем 1589, будет так:

// проверит цифры из буфера, скажем в буфере "1589"
IF(FROMCLIP() > 10000)

« Last Edit: October 04, 2015, 12:01:38 PM by msgkumisi »

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #5 on: October 11, 2015, 09:47:18 AM »
если в буфер попал не только цифры. (содержимое буфера скажем 342 [ )
[spoiler]

[/spoiler]

как оставить только цифры?
« Last Edit: October 11, 2015, 11:30:09 AM by msgkumisi »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: проверка буфера
« Reply #6 on: October 11, 2015, 11:31:55 AM »
если в буфер попал не только цифры. (содержимое буфера скажем 342 [ )
[spoiler]

[/spoiler]

как оставить только цифры?

Отфильтровать конечно
Code: (clickermann) [Select]
$str = STRFILTER(FROMCLIP(), "1234567890", 1) // будет удалено все кроме этих символов

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #7 on: October 11, 2015, 11:41:11 AM »
а в верхнем коде куда это вписать?

Code: (clickermann) [Select]
// проверка скопированного
// скопировать с сайта цифры
lDown(271,952)
waitms(50)
lUp(319,955)
waitms(100)
 
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(100)
 
// проверит цифры из буфера, скажем в буфере "342 ["
IF(STRFILTER(FROMCLIP(), "1234567890", 1) > 10000)
   // если цифра больше 10000 сделать
   move($xak,$yak)
   waitms(380)
   lDown($xak,$yak)
   waitms(255)
   lUp($xak,$yak)
   waitms(2000)
   move($xk,$yk)
   waitms(228)
   lDown($xk,$yk)
   waitms(227)
   lUp($xk,$yk)
   waitms(200)
   SOUND("data/Yes.wav")
   waitms(200)
ELSE
   // если цифра меньше 10000 сделать
   MOVE(145,155)
END_IF


так?
« Last Edit: October 11, 2015, 12:39:43 PM by msgkumisi »

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #8 on: October 11, 2015, 12:03:10 PM »
или так:

Code: (clickermann) [Select]
// проверка скопированного
// скопироват с сайта цифры
lDown(271,952)
waitms(50)
lUp(319,955)
waitms(100)
 
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(100)

$str = STRFILTER(FROMCLIP(), "1234567890", 1) // будет удалено все кроме этих символов

   // запись в лог
     print("найдена цифра:", $str)
 
// проверит цифры из буфера, скажем в буфере "916,50"
IF($str > 10000)
бля-бля-бля
END_IF

сработало!  :D
« Last Edit: October 11, 2015, 12:38:30 PM by msgkumisi »

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #9 on: October 11, 2015, 12:35:45 PM »
ну и нужно докончит главу :

а если у меня в буфере "1234.56  ["

IF(FROMCLIP() > 10000)

что писать?

p.s. как я понял если взят первым STRFILTER, то у меня  получится FROMCLIP() = 123456

p.s.s.  8) понял: нужно STRFILTER добавит "."

Code: (clickermann) [Select]
$str = STRFILTER(FROMCLIP(), "1234567890.", 1) // будет удалено все кроме этих символов

//а потом:
// проверит цифры из буфера, скажем в буфере "1234.56"
IF(ROUND(STRREPLACE($str,",","."), 0) > 10000)
бля-бля-бля
END_IF

как то так.
« Last Edit: October 11, 2015, 12:54:47 PM by msgkumisi »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: проверка буфера
« Reply #10 on: October 11, 2015, 12:44:55 PM »
ну и нужно докончит главу :

а если у меня в буфере "1234.56  ["

IF(FROMCLIP() > 10000)

что писать?

p.s. как я понял если взят первым STRFILTER, то у меня  получится FROMCLIP() = 123456

Точку добавь
Code: (clickermann) [Select]
$str = STRFILTER(FROMCLIP(), "1234567890.", 1) // будет удалено все кроме этих символов

msgkumisi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: проверка буфера
« Reply #11 on: October 11, 2015, 12:58:13 PM »
спасибо за помощь. сам как то подумал и пришел к такому выводу. вот.  ::)