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

8 страниц V < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> UOpilot и ставки в онлайн браузере
cirus
сообщение 25.10.2017, 15:26
Сообщение #21


**********

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



Цитата
Как прописать копирование в заданных координатах?

Выделяем число двойным кликом и нажимаем Ctrl + C, либо тоже самое мышкой.
Код
// копируем число в буфер, написать нужные действия
get clipboard $a    // получили число в переменную
// копируем второе число в буфер, написать нужные действия
get clipboard $b    // получили число в переменную
// дальше их сравниваем

Цитата
И будет ли пилот сравнивать дробные числа с . по середине? Каким образом это лучше сделать?

Обязательно сравнивать дробную часть? Если нет, можно её отбросить:
Код
// пример
set $a 100.5
set $b 101.67
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc
set $b string_replace ($b "." ",")

log trunc($a)   trunc($b)
if  trunc($a) < trunc($b)  // теперь можно сравнить, если $a меньше $b
    // какие-то действия
end_if
end_script

Если надо сравнивать и дробную часть, то придётся дописывать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 25.10.2017, 15:46
Сообщение #22


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 25.10.2017, 15:26) *

Выделяем число двойным кликом и нажимаем Ctrl + C, либо тоже самое мышкой.
Код
// копируем число в буфер, написать нужные действия
get clipboard $a    // получили число в переменную
// копируем второе число в буфер, написать нужные действия
get clipboard $b    // получили число в переменную
// дальше их сравниваем


Обязательно сравнивать дробную часть? Если нет, можно её отбросить:
Код
// пример
set $a 100.5
set $b 101.67
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc
set $b string_replace ($b "." ",")

log trunc($a)   trunc($b)
if  trunc($a) < trunc($b)  // теперь можно сравнить, если $a меньше $b
    // какие-то действия
end
end_script

Если надо сравнивать и дробную часть, то придётся дописывать.


Дробная часть не влияет, но как сравнивать если, к примеру, будет 3х значное число? Заранее прописывать длину
Она не копирует те цифры, нужно провести левой кнопкой мыши нажатой по горизонтали чтобы выделить N знаков от точки X Y, до точки X2 Y, а затем уже нажать ПКМ или скопировать Ctrl+c, но если я проведу и зацеплю точку в двухзначном, в 3х значном это будет еще один символ до точки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 25.10.2017, 16:06
Сообщение #23


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 25.10.2017, 15:26) *


Код
// пример
set $a 100.
set $b 101.


Тут число само пропишется, или надо его для каждой ставки отдельно указывать?

получилось вот таким образом

Код
left_down 424, 384 abs 
Move 548, 384 abs
left_up
    ctrl+c // копируем число в буфер
get clipboard $a    // получили число в переменную
    left_down 621, 384 abs
Move 713, 384 abs
left_up
    Ctrl+c // копируем второе число в буфер
get clipboard $b    // получили число в переменную
// дальше их сравниваем    СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ. КАК ЭТО СДЕЛАТЬ?
set $a 100. //Откуда эти числа берутся?
set $b 101.
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc Допустим можно вобще после точки не сравнивать, тогда что-то нужно убрать?
set $b string_replace ($b "." ",")

log trunc($a)   trunc($b)
if  trunc($a) < trunc($b)  // теперь можно сравнить, если $a меньше $b
kleft 37, 190 abs // закрыть архив
Breack  // какие-то действия  продолжить скрипт с начала  полагаю, НО КАКОЙ ИЗ НИХ НАЧНЁТСЯ С НАЧАЛА? просто продолжить выполнение скрипта тогда Breack не писать?
end
end_script

продолжить выполнение скрипта

после if trunc($a) < trunc($b) //
разве не надо end_if ставить?

что-то не так...
Код
20:41:12 15 (autosaved_15.txt, 2): left_up - (2): Ошибка! Проверьте правильность скрипта! EConvertError '' is not a valid integer value
left_up
20:41:44 15 (autosaved_15.txt, 3): ctrl+c - Неопознанная команда: ctrl+c
20:52:19 16 (autosaved_16.txt, 0): drag - (0): Ошибка! Проверьте правильность скрипта! EConvertError 'abs' is not a valid integer value
drag 424 384 abs 548 384 abs
20:53:01 16 (autosaved_16.txt, 0): drag - (0): Ошибка! Проверьте правильность скрипта! EConvertError 'abs' is not a valid integer value
drag 426, 385 abs 532, 384 abs


Sendex ^c не работает

Код

set $a 424 292 539 292   //координаты заданы строковой переменной
drag $a  // так наполовину работает
Right 539 292  // нажимается ПКМ открывается окно
wait 1000
set clickoffsetx 5       // смещение для координаты X
set clickoffsety 5       // смещение для координаты Y
left 539 292           // клик в координаты 539 292 и ничего не происходит. Вместо копирования становится активной панель задач
End_script


Как сместить то после Right курсор вправо вниз чтобы нажать скопировать? Там другое окно поидее
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.10.2017, 2:24
Сообщение #24


**********

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



Что мешает посмотреть описание команд, синтаксис и примеры?
Список_функций
Выделить слово можно двойным кликом, Sendex ^c работает только для активного окна, т. е. рабочее окно должно быть на переднем плане.
Цитата
Breack
left_up

Break.
При отпускании кнопки мыши нужно указывать координаты.
код
Код
// Сделать привязку Ctrl + A
showwindow windowhandle MINIMIZE  // свернуть пилот
wait 500
double_left 100 200    // двойной клик по числу, указать координаты
wait 200
sendex ^c                // нажать Ctrl + C
get clipboard $a       // получить в переменную содержимое буфера
wait 100
double_left 200 20     // двойной клик по второму числу, указать координаты
wait 200
sendex ^c
get clipboard $b
log $a   $b
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc
set $b string_replace ($b "." ",")
log $a   $b
if trunc($a) < trunc($b)   // сравниваем
    // действия
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 26.10.2017, 7:09
Сообщение #25


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 26.10.2017, 2:24) *


showwindow windowhandle MINIMIZE // свернуть пилот


Так, теперь копирует но я не до конца понял, откуда берутся вот эти вот а и б

двойной клик тоже выделяет

set $a
set $b
Я должен задавать их или что? Каждый раз по новой писать? или это автоматическое значение каждый раз для выделенного/скопированного?

Left_up не нужен, работает

Код
set $a 424 292 539 292  
drag $a
wait 300

Или эта переменная в дальнейшем в коде помешает?
Если есть в drag $a и есть в
set $a string_replace ($a "." ",")
set $b string_replace ($b "." ",")

Они потом столкнутся лбами? Да или что?

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Ну вот я сделал его
Код

double_left 440, 388 abs
wait 300
showwindow windowhandle MINIMIZE  // свернуть пилот
wait 1000
Sendex ^c
get clipboard $a    // получили число в переменную
double_left 633, 383 abs
wait 1000
Sendex ^c
get clipboard $b    // получили число в переменную
// дальше их сравниваем    СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ? КАК ЭТО СДЕЛАТЬ?
set $a
set $b
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc
set $b string_replace ($b "." ",")

log trunc($a)   trunc($b)
if  trunc($a) < trunc($b)  // теперь можно сравнить, если $a меньше $b
kleft 37, 190 abs // закрыть архив
// какие-то действия  продолжить скрипт с начала  полагаю, НО КАКОЙ ИЗ НИХ НАЧНЁТСЯ С НАЧАЛА? Просто продолжить выполнение скрипта.
end_if
end_script

только получилось что не тыкает по kleft 37, 190 abs по итогу сравнения
т.е. или не работает сравнение или я что-то не так написал

вот это выдаёт
13:21:07 2 (autosaved_19.txt, 16): -1 -1
13:24:53 2 (autosaved_19.txt, 16): -1 -1

Надо целое число сравнить, а не то что после точки. После точки пошло оно на..р



Помимо этого следующий вопрос:
Как пилот ловит окна в фоновом режиме, где-то сзади стоящие неактивные, по ID или чему-там еще. И считывает текст который там написан. А потом закрывает это окно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.10.2017, 11:15
Сообщение #26


**********

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



Цитата
set $a
set $b

Толку не будет от того что вы дописываете то, чего нет ни в одном примере. Где вы это взяли? Убрать.
Значения этих переменных обновляются при копировании из буфера.
Цитата
set $a 424 292 539 292
drag $a
wait 300
Или эта меременная в дальнейшем в коде помешает?

Разные имена используйте.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 26.10.2017, 13:48
Сообщение #27


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 26.10.2017, 11:15) *

Толку не будет от того что вы дописываете то, чего нет ни в одном примере. Где вы это взяли? Убрать.


Мне здесь подумалось, нет ли в пилоте например функции которая позволила бы переходить к строке с №, для облегчением всех этих прыжков от одного массива к другому?
Например у меня при сравнении чисел ставится необходимость вернуться к строке скрипта в котором были прописаны действия при нахождении "серого" окна, как это можно сделать? Более интуитивно бы понятно было
Я что-то читал про массивы и циклы, но не пойму зачем такая сложность когда можно указать просто номер строки...

Вот этот весь массив у меня, как на него сослаться, чтобы повторить действия при сером окне - включая счётчик переменных?
Код

if  #grey > 0    // если найдено серое окно
    kleft 1256 126   // клик в строку куда прописывать значение, указать нужные координаты
        wait 500
        send backspace // нажать баксп 5 раз
     send backspace
     send backspace
     send backspace
     send backspace
     wait 10
        set #count #count + 1     // переменная-счётчик
        if  #count > size(%num)   // если переменная-счётчик больше, чем размер массива num
            break            // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная ставка
            // сейчас остановка скрипта, чтобы не было ошибки при выходе за пределы массива
        end_if
        set #summa %num [#count]   // присваиваиваем переменной значение из массива
        log Текущая ставка #summa
        send #summa  // напечать сумму
        Double_left 1247 68 // двойной клик в сторону
        wait random(2500) +3000
        log #count   #summa
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 26.10.2017, 13:55
Сообщение #28


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21043
Пользователь №: 16.156



Цитата
Мне здесь подумалось, нет ли в пилоте например функции которая позволила бы переходить к строке с №


Цитата
Более интуитивно бы понятно было



Сколько же людей так ошибались и сходили с ума в последствии, когда им показывали верное решение....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 26.10.2017, 14:34
Сообщение #29


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Беда
Прописываю Еще одно if
Код
if trunc($a) < trunc($b)   // сравниваем    2    ВЫИГРЫШ
Kleft 37 188 abs
wait 100
kleft 1256 126   // клик в строку куда прописывать значение, указать нужные координаты
        wait 500
        send backspace // нажать баксп 5 раз
     send backspace
     send backspace
     send backspace
     send backspace
     wait 10
        set #summa 100
        set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново
        send #summa  // напечатать сумму
        Double_left 1247 68
        wait random(2500) +3000  // действия
        end_if


для сравнения ситуации равенства или меньше
и ничего не происходит. Выполняется только первый Trunc. Или я запутался в закрытии End_if, сколько их вообще в одном скрипте возможно? Или лучше как-то в одном прописать > < = ?

или для каждого trunc нужно копировать в своём массиве If... ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.10.2017, 15:42
Сообщение #30


**********

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



Цитата
Вот этот весь массив у меня

Это не массив, а часть кода.
Цитата
и ничего не происходит.

Значит условие не является истиной.
Выводите в лог значения переменных, тогда будет понятнее почему не выполняется условие.
Код
log $a   $b
log trunc($a)   trunc($b)
if trunc($a) < trunc($b)
     // нужные действия
end_if

Цитата
Или я запутался в закрытии End_if, сколько их вообще в одном скрипте возможно?

Количество end_if равно количеству if. В одном скрипте условий может быть хоть сколько.
Цитата
нет ли в пилоте например функции которая позволила бы переходить к строке с №

Допустим была бы, дописали 1 строчку в начало скрипта, весь скрипт сместился и уже перейдёт не туда куда надо. Пока такой переход один ещё можно проследить логику скрипта, когда таких переходов будет больше, уже не понять что и в каком порядке работает.

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 26.10.2017, 20:13
Сообщение #31


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 26.10.2017, 15:42) *

Это не массив, а часть кода.
Код
log $a   $b
log trunc($a)   trunc($b)
if trunc($a) < trunc($b)
     // нужные действия
end_if


Как мне написать последовательную проверку
if trunc($a) < trunc($b)
действия set #summa 100
set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново

if trunc($a) = trunc($b)
return к повтору последних действий перед началом сравнений

if trunc($a) > trunc($b)
возврат к "серому окну"

Одна из них проводится, на этом скрипт заканчивается и больше не идёт! Застопоривается на end_script ,хотя раньше через него проходило
В логах ничего нету
Код
23:59:05 21 (Сравнение.txt, 92): -1   -1
23:59:05 21 (Сравнение.txt, 114):  
23:59:05 21 (Сравнение.txt, 115): -1   -1

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.10.2017, 2:17
Сообщение #32


**********

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



Во-первых, где код.
Во-вторых, переменные $a и $b содержат -1, а должны содержать скопированное число. Смысл дальше писать код, если предыдущая часть нормально не выполняется? Ищите почему не было копирования из буфера.
Скрипт можно писать отдельными частями, написали часть, проверили что она корректно работает, добавили в основной скрипт.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 27.10.2017, 5:33
Сообщение #33


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 27.10.2017, 2:17) *

Во-первых, где код.
Во-вторых, переменные $a и $b содержат -1, а должны содержать скопированное число.

Откуда я знаю почему оно не копирует. Вы же мне дали такой код -

Код

set #summa 100     // начальная ставка
init_arr %num 250 625 1526 3815 9700 24414 62500
set #count 0

while 1 = 1
    set #grey 0
    set #yellow 0
    while #grey = 0 and #yellow = 0   // ждём пока не появится серое или жёлтое окно
        set #grey findcolor(111, 397 350, 567 1 1 5130825 %arr)
        set #yellow findcolor(111, 397 350, 567 1 1 4709887 %arr)
        wait 100
    end_while

    if  #grey > 0    // если найдено серое окно
        kleft 1256 126   // клик в строку куда прописывать значение
        wait 500
        send backspace // нажать баксп 5 раз
     send backspace
     send backspace
     send backspace
     send backspace
     wait 10
        set #count #count + 1     // переменная-счётчик
        if  #count > size(%num)   // если переменная-счётчик больше, чем размер массива num
            break            // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная

ставка
            // сейчас остановка скрипта, чтобы не было ошибки при выходе за пределы массива
        end_if
        set #summa %num [#count]   // присваиваиваем переменной значение из массива
        log Текущая ставка #summa
        send #summa  // напечать сумму
        Double_left 1247 68 // двойной клик в сторону
        wait random(2500) +3000
        send R
        log #count   #summa
        wait 200
    else   // иначе, т. е. найдено жёлтое окно
Kleft 37 188 abs
wait 500
kleft 261 178 abs
wait 500
double_left 440, 388 abs
wait 300
showwindow windowhandle MINIMIZE  // свернули пилот
wait 1000
Sendex ^c
get clipboard $a    // получили число а в переменную
double_left 633, 383 abs
wait 1000
Sendex ^c
get clipboard $b    // получили число  в переменную, Число не получается, хотя при ручной вставке обнаруживается что оно скопировано в буфер
// дальше их сравниваем    СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ
set $a
set $b
set $a string_replace ($a "." ",")   // заменяем точку на запятую, иначе не будет работать trunc
set $b string_replace ($b "." ",")
log $a  $b
log trunc($a)   trunc($b)
if trunc($a) > trunc($b)   // сравниваем   1           ПРОИГРЫШ
wait 100
Kleft 35 101
wait 100
kleft 1256 126   // клик в строку куда прописывать значение, указать нужные координаты
        wait 500
        send backspace // нажать баксп 5 раз
     send backspace
     send backspace
     send backspace
     send backspace
     wait 10
        set #count #count + 1     // переменная-счётчик
        if  #count > size(%num)   // если переменная-счётчик больше, чем размер массива num
            break            // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная

  // действия
set #summa %num [#count]   // присваиваиваем переменной значение из массива
        log Текущая ставка #summa
        send #summa  // напечать сумму
        Double_left 1247 68 // двойной клик в сторону
        wait random(2500) +3000
        send R
        log #count   #summa
        wait 200

end_if
end_if
set $a
set $b
set $a string_replace ($a "." ",")   // заменяем точку на запятую
set $b string_replace ($b "." ",")
log $a  $b
log trunc($a)   trunc($b)
if trunc($a) < trunc($b)   // сравниваем    2    ВЫИГРЫШ
Kleft 35 101
wait 100
kleft 1256 126   // клик в строку куда прописывать значение, указать нужные координаты
        wait 500
        send backspace // нажать баксп 5 раз
     send backspace
     send backspace
     send backspace
     send backspace
     wait 10
        set #summa 100
        set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново
        send #summa  // напечатать сумму
        Double_left 1247 68
        wait random(2500) +3000  // действия
        end_if
set $a
set $b
set $a string_replace ($a "." ",")   // заменяем точку на запятую
set $b string_replace ($b "." ",")
log $a  $b
log trunc($a)   trunc($b)
if trunc($a) = trunc($b)   // сравниваем    3   РАВЕНСТВО
     Kleft 35 101
     wait 100
     Send Q // какое-то действие
    wait 100
    end_if
end_script
       end_if
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.10.2017, 10:22
Сообщение #34


**********

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



Цитата
set $a
set $b
Толку не будет от того что вы дописываете то, чего нет ни в одном примере. Где вы это взяли? Убрать.

Для кого я это пишу? Что не понятного в слове убрать?
Цитата
Откуда я знаю почему оно не копирует. Вы же мне дали такой код -

Я пишу пример как можно что-то сделать, как его применять, где использовать и дорабатывать ваше дело.
Цитата
на этом скрипт заканчивается и больше не идёт! Застопоривается на end_script

end_script - конец скрипта. По сути остановить скрипт. Удивительно почему дальше скрипт не работает?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 28.10.2017, 14:05
Сообщение #35


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 27.10.2017, 10:22) *

Для кого я это пишу? Что не понятного в слове убрать?

Я пишу пример как можно что-то сделать, как его применять, где использовать и дорабатывать ваше дело.

end_script - конец скрипта. По сути остановить скрипт. Удивительно почему дальше скрипт не работает?


Да спасибо, теперь вроде бы всё

Еще как можно прописать команду которая бы возвращала после всех манипуляций активное окно перед тем как было активировано данное окно. Если они не свёрнуты но перекрыты?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 28.10.2017, 19:35
Сообщение #36


**********

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



Цитата
команду которая бы возвращала после всех манипуляций активное окно перед тем как было активировано данное окно.

Showwindow
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 29.10.2017, 14:14
Сообщение #37


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 28.10.2017, 19:35) *


Как вернуться к началу If?
Если этих If много, а мне нужен именно один из них?
Т.е. что отличает команду End_if с продолжением выполнения цикла ниже, от команды возврата к началу этого If пока что-то не выполнено?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 29.10.2017, 15:52
Сообщение #38


**********

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



Использовать while вместо if.
Код
if условие  
    // выполнится однократно, если условие является истиной
end_if

Код
while условие
    // будет выполняться пока условие является истиной
end_while

Например:
Код
log clear
set #a 3
if #a < 7   // если переменная #a меньше 7
    log #a  // вывести в лог
end_if
log
while #a < 7  // пока переменная #a меньше 7
    log #a    // вывести в лог
    set #a #a + 1   // увеличиваем переменную #a на 1
end_while
end_script


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 29.10.2017, 21:22
Сообщение #39


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Так у меня затруднение какое-то получилось.
мне нужно выйти за пределы цикла и написать возврат к нему ниже. Не буду же я копировать одно и тоже по 100 раз. Вот почему и говорю что возврат к строке или переменной с Уникальным номером было бы естественным выходом из порочных дъявольских кругов цикличности. Тот кто изобрёл программирование был... мазохист.

wile 1=1 (#A)
бла бла
if = 1
Тут надо писать end_if ? Или как мне вывести за пределы этого цикла условие если if не равно 1
end_while (то есть начать цикл заново)
else (это же относится к началу if, будет ли оно в таком случае работать)-- в противном случае

те же действия что в общем цикле
но по ходу их выполнения может возникнуть необходимость несколько раз вернуться к циклу #А

Графически объясню что я хочу потому что на словах не очень
(IMG:https://preview.ibb.co/jTQ8RR/image.jpg)

Вот во вторых квадратиках у меня может содержаться то, что уже сделано в первых, и как мне сослаться на решение в первых чтобы не писать его по 100 раз в тех что будут после него?

В природе всё гораздо проще - решает сила а не переменные)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 29.10.2017, 21:59
Сообщение #40


**********

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



Цитата
цикл if

if это не цикл, а проверка условия на истина/ложь.
Цитата
мне нужно выйти за пределы цикла и написать возврат к нему ниже.

Код
while 1 = 1
    gosub metka      // перейти к метке (имя может быть любое)
end_while
end_script

:metka
    // тут могут быть любые проверки/действия или другой цикл
    if  1 = 1
        // бла бла
    else
        // бла бла
    end_if
return        // возвращаемся к месту перенаправления, т. е. обратно в цикл
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

8 страниц V < 1 2 3 4 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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