В коде вызываемого скрипта (подпрограммы) доступны специальные
переменные с именами $PARAMETERS
и
$RESULT
. Первая позволяет передать строку параметров
в подпрограмму, а вторая передать результат обратно в вызывающий
скрипт.
Переданную в подпрограмму строку парамеров можно разобрать на
части с помощью функций для работы со строками, например, с помощью
@StringPart
.
По умолчанию функция @StringPart
делит строку
на части по пробелам. Таким образом можно передать в подпрограмму в
одной строке числа, разделенные пробелом. Но
@StringPart
можно использовать и с другим
разделителем. Допустим, вам нужно передать в подпрограмму пару
переменных, содержащих пробелы. Давайте используем в качестве
разделителя символ ~
(тильда):
$S1=Первая строка $S2=Вторая строка %Library.MyScript $S1~$S2
Тогда внутри подпрограммы мы можем разделить переданную строку на отдельные части таким образом:
$S1=@StringPart 1~$PARAMETERS $S2=@StringPart 2~$PARAMETERS
Для передачи скрипту длинных списков с неизвестным наперед
количеством элементов можно использовать массив текстовых строк
@Text
. Например:
;Вызов скрипта @Text.Add Первый элемент списка @Text.Add Второй элемент списка ;... @Text.Add N-ый элемент списка $S=@Text.Text %Library.MyScript $S ;Текст скрипта @Text.Text $PARAMETERS $C=@Text.Count @If $C=0 @Break Список параметров пуст ;обработка строк списка параметров от 1 до $С через @Text.Lines[$I]
Передача результата из подпрограммы выполняется так:
$RESULT=
Возвращаемая_строка