UoKit.com Форумы > Кликер > UO Pilot
Страницы: 1, 2
Levo222
Подскажите если копирую данные переменные с незнакомыми символами в конце для сравнения, как их убрать?
Код
    
           get clipboard $a
        double_left 577, 419 abs
        Sendex ^c
        get clipboard $b
        set $a string_replace ($a "." ",")  
        set $b string_replace ($b "." ",")
        log $a  $b
        log trunc($a)   trunc($b)
        if  trunc($a) > trunc($b)

На выходе имеет вот такой вид.
9:30:28 66 (6, 129): 100,00 ?
180,00 ?
а должно иметь
9:11:27 66 ( 102): 100,00 180,00
9:11:27 66 (103): 100 180
Вверх
cirus
Если правильно понял.
Код
set $a 100,00 ?    // скопированная строка
set $b 180,00 ?
log $a
log $b

set $regexp "\d+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    log $a1
end_if

set #n regexp (#position $a2 $b $regexp)
if  #n > 0
    log $a2
end_if
end_script

Вверх
Levo222
Цитата(cirus @ 24.2.2018, 14:04)

Если правильно понял.
Код
set $a 100,00 ?    // скопированная строка
set $b 180,00 ?
log $a
log $b

set $regexp "\d+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    log $a1
end_if

set #n regexp (#position $a2 $b $regexp)
if  #n > 0
    log $a2
end_if
end_script


set #n regexp (#position $a1 $a $regexp)
if #n > 0
log $a1
end_if
set #n regexp (#position $a2 $b $regexp)
$a1 $a, $a2 $b что обозначает?

Я так понял из лога нужно теперь брать? Раньше то из внешнего источника, теперь вторично Sendex ^c и get clipboard писать чтоли?

Помогло, но думать стал очень долго. И теперь при сравнении тысячных обрезает всё по первой цифре
14:29:38 66 (154): 1 868,00 ?

14:29:38 66 (155): 3 362,40 ?

14:29:39 66 (159): 1
14:29:39 66 (164): 3
а это не всегда корректно
А причиной тому является что изменилось написание чисел в стенде куда нажимается кнопка. Теперь там стоит пробел и как его убрать не знаю

_______
UPd: У меня теперь при сравнении всегда равенство выдаёт. Нужно было для двух переменных это делать или только для одной?

Вверх
cirus
Код
log clear
log mode compact
set $a 3 362,40 ?

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")
    log $a
    log $a1
    log $a2
end_if
end_script

Вверх
Levo222
Цитата(cirus @ 24.2.2018, 22:26)

Код
log clear
log mode compact
set $a 3 362,40 ?

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")
    log $a
    log $a1
    log $a2
end_if
end_script


Но числа то разные все, как рандомное число скопировать?
Вверх
cirus
Цитата
Но числа то разные все, как рандомное число скопировать?

Сначала речь шла об этом:
Цитата
Подскажите если копирую данные переменные с незнакомыми символами в конце для сравнения, как их убрать?

Я написал как убрать. Какое число в переменной без разницы.
Что и куда вы копируете я не знаю.
Вверх
Levo222
Цитата(cirus @ 25.2.2018, 3:49)

какое число в переменной без разницы.
Что и куда вы копируете я не знаю.

Ну я копирую рандомное число
=

Код
double_left 426, 420 abs
        kleft 426, 420 abs
        wait 300
        showwindow windowhandle MINIMIZE
        wait 100
        Sendex ^c
        get clipboard $a  
        double_left 577, 419 abs
        kleft 577, 419 abs
        wait 100
        Sendex ^c
        get clipboard $b  
        // сравнение
        set $a string_replace ($a "." ",")
        set $b string_replace ($b "." ",")
        log $a  $b
        set $regexp "\d+"
        set #n regexp (#position $a1 $a $regexp)
        if  #n > 0
        log $a1
        end_if
        set #n regexp (#position $a2 $b $regexp)
        if  #n > 0
            log $a2
        end_if
        log clear
log mode compact
set $a 3 362,40 ?

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "") // я понял что эта строка убирает пробел, но не понял откуда она берет число
    log $a
    log $a1
    log $a2
end_if
        log trunc($a1)   trunc($a2)
        if  trunc($a1) > trunc($a2)
        send F
        end_if
тут действия исходя больше или меньше первое число второго

Нужно чтобы просто убирался пробел при сравнении и незнакомый символ в конце
Вверх
cirus
код
Код
double_left 426, 420 abs
kleft 426, 420 abs
wait 300
showwindow windowhandle MINIMIZE
wait 100
Sendex ^c
wait 100   // пауза, иначе может не успеть скопировать
get clipboard $a
double_left 577, 419 abs
kleft 577, 419 abs
wait 100
Sendex ^c
wait 100     // пауза, иначе может не успеть скопировать
get clipboard $b

// сравнение
log clear
log mode compact

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")
end_if

set #n regexp (#position $b1 $b $regexp)
if  #n > 0
    set $b2 string_replace ($b1 " " "")
end_if

///// можно убрать //////
log $a   $b
log $a1   $b1
log $a2   $b2    // эти можно сравнивать
////////////

if  $a2 > $b2
    send F
end_if
//тут действия исходя больше или меньше первое число второго

Цитата
set $a2 string_replace ($a1 " " "") // я понял что эта строка убирает пробел, но не понял откуда она берет число

Число возвращает функция regexp. Шаблон "[\d\s]+" означает искать цифры и пробелы.

Вверх
Levo222
Цитата(cirus @ 25.2.2018, 5:06)

код
Код
double_left 426, 420 abs
kleft 426, 420 abs
wait 300
showwindow windowhandle MINIMIZE
wait 100
Sendex ^c
wait 100   // пауза, иначе может не успеть скопировать
get clipboard $a
double_left 577, 419 abs
kleft 577, 419 abs
wait 100
Sendex ^c
wait 100     // пауза, иначе может не успеть скопировать
get clipboard $b

// сравнение
log clear
log mode compact

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")
end_if

set #n regexp (#position $b1 $b $regexp)
if  #n > 0
    set $b2 string_replace ($b1 " " "")
end_if

///// можно убрать //////
log $a   $b
log $a1   $b1
log $a2   $b2    // эти можно сравнивать
////////////

if  $a2 > $b2
    send F
end_if
//тут действия исходя больше или меньше первое число второго


Число возвращает функция regexp. Шаблон "[\d\s]+" означает искать цифры и пробелы.

Да, теперь вроде работает.
Вверх
Levo222
Цитата(cirus @ 25.2.2018, 5:06)

код
Код
double_left 426, 420 abs
kleft 426, 420 abs
wait 300
showwindow windowhandle MINIMIZE
wait 100
Sendex ^c
wait 100   // пауза, иначе может не успеть скопировать
get clipboard $a
double_left 577, 419 abs
kleft 577, 419 abs
wait 100
Sendex ^c
wait 100     // пауза, иначе может не успеть скопировать
get clipboard $b

// сравнение
log clear
log mode compact

set $regexp "[\d\s]+"
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")
end_if

set #n regexp (#position $b1 $b $regexp)
if  #n > 0
    set $b2 string_replace ($b1 " " "")
end_if

///// можно убрать //////
log $a   $b
log $a1   $b1
log $a2   $b2    // эти можно сравнивать
////////////

if  $a2 > $b2
    send F
end_if
//тут действия исходя больше или меньше первое число второго



А чтобы не убирать числа после запятой, но убрать саму запятую что нужно изменить?
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.