Автор Тема: Двойная условная конструкция не работает.  (Прочитано 108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ЯнеТЫ

  • Зашел в гости
  • *
  • Сообщений: 3
    • Просмотр профиля
Всем здоровья! Решаю задачу, условие: Надо выполнить скрипт, при открытых двух программах, если какая то программа, или обе закрыты, то открыть, и выполнить скрипт. Вначале была одна программа, всё работало, по аналогии сделал на две, работает только если обе программы закрыты. В других случаях или не корректный ответ, или ошибка. Я только учусь... сильно не бейте... Название темы позаимствовал в справке...




Код: Clickermann
  1. IF(WNDFIND("Блокнот"))
  2.  SUB(zz)
  3.     IF(WNDFIND("Калькулятор")) // Калькулятор открыт
  4.          SUB(qq)
  5.            print("выполняю скрипт")  // выполняю
  6.          END_SUB
  7.          qq()
  8.      ELSE // Калькулятор не открыт
  9.        print("открываю Калькулятор")
  10.        // EXECUTE("...Калькулятор...")    
  11.        qq() // выполняю скрипт  
  12.      END_IF
  13.  END_SUB
  14.  zz()  
  15. ELSE // блокнот не открыт
  16.  print("открываю блокнот")
  17.  // EXECUTE("...блокнот...")
  18.  zz()  // выполняю скрипт
  19. END_IF  
  20. HALT
« Последнее редактирование: Ноябрь 05, 2019, 09:38:41 pm от ЯнеТЫ »

ЯнеТЫ

  • Зашел в гости
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Двойная условная конструкция не работает.
« Ответ #1 : Ноябрь 05, 2019, 09:37:18 pm »
Вот так работает:
Код: Clickermann
  1. IF(WNDFIND("Калькулятор")) // Калькулятор открыт
  2.          SUB(xx)
  3.            print("выполняю скрипт")  // выполняю
  4.          END_SUB
  5.          xx()
  6. ELSE // Калькулятор не открыт
  7.        print("открываю Калькулятор")
  8.        xx() // выполняю скрипт  
  9. END_IF
  10. HALT
  11.  
« Последнее редактирование: Ноябрь 05, 2019, 09:41:39 pm от ЯнеТЫ »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3626
  • Котэ
    • Просмотр профиля
Re: Двойная условная конструкция не работает.
« Ответ #2 : Ноябрь 05, 2019, 09:52:32 pm »
Подпрограмма не может быть описана внутри условий! Описание должно быть всегда на первом уровне, выше своего вызова и лучше до основного кода.
Код: Clickermann
  1.          SUB(qq)
  2.            print("выполняю скрипт")  // выполняю
  3.          END_SUB

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3626
  • Котэ
    • Просмотр профиля
Re: Двойная условная конструкция не работает.
« Ответ #3 : Ноябрь 05, 2019, 09:53:53 pm »
Правильная конструкция

Код: Clickermann
  1. SUB(qq)
  2.   print("выполняю скрипт")  // выполняю
  3. END_SUB
  4.  
  5. SUB(zz)
  6.   IF(WNDFIND("Калькулятор")) // Калькулятор открыт
  7.      qq()
  8.   ELSE // Калькулятор не открыт
  9.      print("открываю Калькулятор")
  10.      // EXECUTE("...Калькулятор...")
  11.      qq() // выполняю скрипт
  12.   END_IF
  13. END_SUB  
  14.  
  15. IF(WNDFIND("Блокнот"))    
  16.   zz()
  17. ELSE // блокнот не открыт
  18.   print("открываю блокнот")
  19.   // EXECUTE("...блокнот...")
  20.   zz()  // выполняю скрипт
  21. END_IF
  22. HALT