Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> get clipboard, сравнение переменных
Levo222
сообщение 24.2.2018, 5:40
Сообщение #1


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Подскажите если копирую данные переменные с незнакомыми символами в конце для сравнения, как их убрать?
Код
    
           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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.2.2018, 10:04
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Если правильно понял.
Код
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
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 24.2.2018, 10:31
Сообщение #3


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(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: У меня теперь при сравнении всегда равенство выдаёт. Нужно было для двух переменных это делать или только для одной?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.2.2018, 18:26
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
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
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 24.2.2018, 23:11
Сообщение #5


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(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


Но числа то разные все, как рандомное число скопировать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.2.2018, 23:49
Сообщение #6


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



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

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

Я написал как убрать. Какое число в переменной без разницы.
Что и куда вы копируете я не знаю.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 25.2.2018, 0:42
Сообщение #7


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(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
тут действия исходя больше или меньше первое число второго

Нужно чтобы просто убирался пробел при сравнении и незнакомый символ в конце
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.2.2018, 1:06
Сообщение #8


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



код
Код
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]+" означает искать цифры и пробелы.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 25.2.2018, 2:56
Сообщение #9


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(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]+" означает искать цифры и пробелы.

Да, теперь вроде работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 25.2.2018, 12:12
Сообщение #10


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(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
//тут действия исходя больше или меньше первое число второго



А чтобы не убирать числа после запятой, но убрать саму запятую что нужно изменить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.2.2018, 12:28
Сообщение #11


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



код
Код
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 " " "")   // удалить пробел
    set $a2 string_replace ($a2 "," "")   // удалить запятую
end_if

set #n regexp (#position $b1 $b $regexp)
if  #n > 0
    set $b2 string_replace ($b1 " " "")   // удалить пробел
    set $b2 string_replace ($b2 "," "")   // удалить запятую
end_if

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

if  $a2 > $b2
    send F
end_if
//тут действия исходя больше или меньше первое число второго
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 25.2.2018, 16:27
Сообщение #12


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 25.2.2018, 16:28) *

код
Код
double_left 426, 420 abs


set $regexp "[\d\s\,]+"    // ищем числа пробелы и запятые
set #n regexp (#position $a1 $a $regexp)
if  #n > 0
    set $a2 string_replace ($a1 " " "")   // удалить пробел
    set $a2 string_replace ($a2 "," "")   // удалить запятую
end_if

if  $a2 > $b2
    send F
end_if


Спасибо,
Так я и понял, просто я думал придётся 3-й символ вводить чтобы все 3 удалить
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 14:23
Designed by Nickostyle