Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: msgkumisi on October 04, 2015, 09:23:40 AM

Title: проверка буфера
Post by: msgkumisi 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)

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

Title: Re: проверка буфера
Post by: Oraven 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
Title: Re: проверка буфера
Post by: msgkumisi on October 04, 2015, 10:54:19 AM
понятно
Title: Re: проверка буфера
Post by: Oraven on October 04, 2015, 10:54:43 AM
Опишу по подробнее
FROMCLIP() - возвращает строку из буфера.
STRREPLACE - замена текста в строке. Ты пишешь "916,50" но кликер может вычислять только с цифрами с точкой "916.50" поэтому нам нужно заменить запятую на точку
ROUND - округление числа. Отсекаем числа после точки.
Title: Re: проверка буфера
Post by: msgkumisi on October 04, 2015, 11:57:44 AM
Опишу по подробнее
FROMCLIP() - возвращает строку из буфера.
STRREPLACE - замена текста в строке. Ты пишешь "916,50" но кликер может вычислять только с цифрами с точкой "916.50" поэтому нам нужно заменить запятую на точку
ROUND - округление числа. Отсекаем числа после точки.

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

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

Title: Re: проверка буфера
Post by: msgkumisi on October 11, 2015, 09:47:18 AM
если в буфер попал не только цифры. (содержимое буфера скажем 342 [ )
[spoiler]
(http://wallmaker.ru/epic/view/G4vOuKZkdrD08HwohQrjRs2D)
[/spoiler]

как оставить только цифры?
Title: Re: проверка буфера
Post by: Oraven on October 11, 2015, 11:31:55 AM
если в буфер попал не только цифры. (содержимое буфера скажем 342 [ )
[spoiler]
(http://wallmaker.ru/epic/view/G4vOuKZkdrD08HwohQrjRs2D)
[/spoiler]

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

Отфильтровать конечно
Code: (clickermann) [Select]
$str = STRFILTER(FROMCLIP(), "1234567890", 1) // будет удалено все кроме этих символов
Title: Re: проверка буфера
Post by: msgkumisi 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


так?
Title: Re: проверка буфера
Post by: msgkumisi 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
Title: Re: проверка буфера
Post by: msgkumisi 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

как то так.
Title: Re: проверка буфера
Post by: Oraven 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) // будет удалено все кроме этих символов
Title: Re: проверка буфера
Post by: msgkumisi on October 11, 2015, 12:58:13 PM
спасибо за помощь. сам как то подумал и пришел к такому выводу. вот.  ::)