Передача параметров (1-й способ)

В коде вызываемого скрипта (подпрограммы) доступны специальные переменные с именами $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=Возвращаемая_строка