Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Uznayka on March 29, 2015, 11:31:33 AM

Title: Ошибка GOTO(Metka_1)
Post by: Uznayka on March 29, 2015, 11:31:33 AM
Основная программа:
Code: [Select]
$p="11111"
$i=1
#include "include/prg.cms"
WAIT(3)
$p="22222"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="33333"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="44444"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="55555"
WAIT(5)
Содержимое prg.cms:
Code: [Select]
$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)
Программа зацикливается...
Оказалось дело в имени метки. Убираем знак подчеркивания и всё работает. Надо же мне было так нарваться, полдня потерял...
Может исправление этой ошибки исправит и другие более серьезные.
Программа понравилась. И задумка, и реализация. Жаль много ошибок.
Title: Re: Ошибка GOTO(Metka_1)
Post by: Oraven on March 29, 2015, 02:06:45 PM
Ошибка не в GOTO(Metka_1) а в твоих #include! Порезал на кусочки, думал так проще и понятнее?!

Давай соберем твою мозаику
Code: (clickermann) [Select]
$p="11111"
$i=1

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="22222"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="33333"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="44444"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="55555"
WAIT(5)

HALT

И что у нас выходит, а выходит у нас что метка Metka_1: встречается 4 раза за скрипт, что не допустимо! Видимо переход каждый раз осуществляется к первой метке.

Верный способ, использовать подпрограмму.
Code: (clickermann) [Select]
SUB(вызов, $p) // подпрограмма с параметрами
   INC($i,1)
   GOTO(Metka_1)
   Metka_1:
   print($p, $i)
END_SUB

$i=1
вызов(11111)
WAIT(3)

вызов(22222)
WAIT(3)

вызов(33333)
WAIT(3)

вызов(44444)
WAIT(3)

вызов(55555)
WAIT(5)

Ну неужели это так сложно?
Title: Re: Ошибка GOTO(Metka_1)
Post by: Uznayka on March 29, 2015, 08:24:45 PM
Спасибо! Я видно совсем заработался. Пора отдыхать...
Почему, то решил, что делаю вызов подпрограмм с помощью #include...
А может и действительно для меня это сложно...
Пока...