Author Topic: Диалоговое окно ввода строки, если переменная пустая  (Read 1742 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
1)
Если $im = значение, то диалоговое окно не открывается, а значение сохраняется.
Если $im = пусто, то открывается диалоговое окно.

Code: (clickermann) [Select]
$im = INPUTBOX("Ввести имя", "10", 10)и сохраняет вводимый текст в переменную.

Также если переменная $im = $a, то тоже открывается диалоговое окно и текст в окне заменяет текст в переменной

Также прошу убрать из диалогового окна таймер.

2)
Переменная $tel содежит телефонный номер. Номер всегда начинается с 7. Нужно первую семерку поменять на 8.

Затем
Если первые 2 цифры в переменной 89, то клик
Code: (clickermann) [Select]
LCLICK(805,277)
Если первые 2 цифры иные, например, 83, то клик в координаты
Code: (clickermann) [Select]
LCLICK(815,236)
Возможно сделать?
Заранее спасибо!)
« Last Edit: December 10, 2019, 09:47:15 AM by SimplY »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
1)
Таймер убрать нельзя. Можно просто задать его большим.

Если $im = пусто, то открывается диалоговое окно.
В кликере нет значений None или NAN, поэтому если значение не задано изначально то при проверке (или любой операции) автоматически присваивается 0.
Можно, конечно сравнивать и с 0, но это не совсем правильно, вдруг твои значения могут быть нулём.
Если переменная $im всегда имеет тип "строка", то и "пусто" нужно присваивать пустую строку, а не делать UNDEFINE
$im = ""

Тогда код будет такой:
Code: (clickermann) [Select]
IF($im = "")
    $im = INPUTBOX("Ввести имя", "10", 9999)
ELSE
    IF($im = $a)
        $im = INPUTBOX($a, "10", 9999)
        // если имелось ввиду значение по умолчанию
        //$im = INPUTBOX("Ввести имя", $a, 9999)
    END_IF
END_IF

2)
Code: (clickermann) [Select]
$tel = "79031112233"

$tel = STRCONCAT("8", STRCUT($tel, 2, 999))
LOGWRITE($tel)

$pref = STRCUT($tel, 1, 2)
IF($pref = "89")
    LCLICK(805,277)
    WAITMS(100)
END_IF
IF($pref = "83")
    LCLICK(815,236)
    WAITMS(100)
END_IF
« Last Edit: December 10, 2019, 10:49:04 AM by Vint »


SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
1)
Таймер убрать нельзя. Можно просто задать его большим.

Если $im = пусто, то открывается диалоговое окно.
В кликере нет значений None или NAN, поэтому если значение не задано изначально то при проверке (или любой операции) автоматически присваивается 0.
Можно, конечно сравнивать и с 0, но это не совсем правильно, вдруг твои значения могут быть нулём.
Если переменная $im всегда имеет тип "строка", то и "пусто" нужно присваивать пустую строку, а не делать UNDEFINE
$im = ""

Тогда код будет такой:
Code: (clickermann) [Select]
IF($im = "")
    $im = INPUTBOX("Ввести имя", "10", 9999)
ELSE
    IF($im = $a)
        $im = INPUTBOX($a, "10", 9999)
        // если имелось ввиду значение по умолчанию
        //$im = INPUTBOX("Ввести имя", $a, 9999)
    END_IF
END_IF

2)
Code: (clickermann) [Select]
$tel = "79031112233"

$tel = STRCONCAT("8", STRCUT($tel, 2, 999))
LOGWRITE($tel)

$pref = STRCUT($tel, 1, 2)
IF($pref = "89")
    LCLICK(805,277)
    WAITMS(100)
END_IF
IF($pref = "83")
    LCLICK(815,236)
    WAITMS(100)
END_IF

Спасибо! Во втором случае представлен скрипт только если будет 83. Но там же может быть 84 и так далее. Другими словами всё, что не 89.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Там же не сказано что всего два варианта: 89 и все остальные.
Когда так описывают "Если первые 2 цифры иные, например, 83, то клик в координаты", то обычно имеют ввиду что значений много и для каждого свои клики.
Просто не хотят расписывать сейчас все эти случаи.

А так вот
Code: (clickermann) [Select]
$tel = STRCONCAT("8", STRCUT($tel, 2, 999))

IF(STRCUT($tel, 1, 2) = "89")
    LCLICK(805,277)
ELSE
    LCLICK(815,236)   
END_IF
WAITMS(100)


Непонятно зачем менять 7 на 8, если можно и так сравнить. Или значение нужно куда-то вставлять или записывать, тогда это третий вопрос.
« Last Edit: December 10, 2019, 11:28:44 AM by Vint »