Author Topic: Вызов подпрограммы переменной. Возможно такое реализовать?  (Read 1692 times)

0 Members and 1 Guest are viewing this topic.

stars1981

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Доброго времени суток!!! Подскажите пожалуйста, как правильно вызвать подпрограмму переменной. Пример: имеется множество подпрограмм SUB(mysub1),SUB(mysub2),SUB(mysub3) и при работе скрипта нужно вызывать каждый раз другую подпрограмму.

stars1981

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Поконкретней:
Code: [Select]
SUB(mysub31)
   TFCLEAR("zakonchili.txt", 0)
   STRWRITELN("zakonchili.txt","mysub32",0)
   IF($PS = 1)
      WHEELDOWN(100)
      $NAJAT = "Kartinki\KartinkiPS\VipolnitPS.bmp"
      $NAJAT1 = "Kartinki\KartinkiYT\ProsmotriYT.bmp"
      $NAJAT2 = "Kartinki\KartinkiPS\PS.bmp"
      $stcoord_X = 400
      $stcoord_Y = 560
      $encoord_X = $_xmax
      $encoord_Y = $_ymax
      $percent = 100
      $colorm = 0
      $offsetX = 20
      $offsetY = -20
      #include "Zadanie.cms"
   END_IF
END_SUB
SUB(mysub31)
   TFCLEAR("zakonchili.txt", 0)
   STRWRITELN("zakonchili.txt","mysub33",0)
   IF($PS = 1)
      WHEELDOWN(100)
      $NAJAT = "Kartinki\KartinkiPS\VipolnitPS.bmp"
      $NAJAT1 = "Kartinki\KartinkiYT\ProsmotriYT.bmp"
      $NAJAT2 = "Kartinki\KartinkiPS\PS.bmp"
      $stcoord_X = 400
      $stcoord_Y = 560
      $encoord_X = $_xmax
      $encoord_Y = $_ymax
      $percent = 100
      $colorm = 0
      $offsetX = 20
      $offsetY = -20
      #include "Zadanie.cms"
   END_IF
END_SUB
SUB(mysub31)
   TFCLEAR("zakonchili.txt", 0)
   STRWRITELN("zakonchili.txt","mysub34",0)
   IF($PS = 1)
      WHEELDOWN(100)
      $NAJAT = "Kartinki\KartinkiPS\VipolnitPS.bmp"
      $NAJAT1 = "Kartinki\KartinkiYT\ProsmotriYT.bmp"
      $NAJAT2 = "Kartinki\KartinkiPS\PS.bmp"
      $stcoord_X = 400
      $stcoord_Y = 560
      $encoord_X = $_xmax
      $encoord_Y = $_ymax
      $percent = 100
      $colorm = 0
      $offsetX = 20
      $offsetY = -20
      #include "Zadanie.cms"
   END_IF
END_SUB
$SKIP = STRREADLN("zakonchili.txt", 1)
// здесь нужно вызывать подпрограмму, при каждом цикле ту, название которой прописалось в txt файл.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Можно. Но не на прямую.

Code: (clickermann) [Select]
SUB(mysub1)
    PRINT("sub1")
END_SUB
SUB(mysub2)
    PRINT("sub2")
END_SUB
SUB(mysub3)
    PRINT("sub3")
END_SUB


SUB(mysub, $numsub)
    SWITCH($numsub)
    CASE(1)
        mysub1()
    CASE(2)
        mysub2()
    CASE(3)
        mysub3()
    END_SWITCH
END_SUB

// пример
FOR($i=0, $i < 10)
    mysub(RND(1,3))
END_CYC

HALT


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Что это во 2-м сообщении?
Почему 3 раза ПП с одним именем и почти одинаковые?


stars1981

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Можно. Но не на прямую.

Code: (clickermann) [Select]
SUB(mysub1)
    PRINT("sub1")
END_SUB
SUB(mysub2)
    PRINT("sub2")
END_SUB
SUB(mysub3)
    PRINT("sub3")
END_SUB


SUB(mysub, $numsub)
    SWITCH($numsub)
    CASE(1)
        mysub1()
    CASE(2)
        mysub2()
    CASE(3)
        mysub3()
    END_SWITCH
END_SUB

// пример
FOR($i=0, $i < 10)
    mysub(RND(1,3))
END_CYC

HALT
Благодарю!!! Получилось.