Может хоть тут помогут.
Ковырялся с процедурками. Вроде разобрался. Тепереча встала проблема, как
передать процедуре параметры (в частности строку), так чтобы не использовать
дополнительно переменные.
Вот процедура, которую я пишу
: Pack7z
FILE-EXIST: "%ProgramFiles%\7-Zip\7z.exe"
IF ShowMinimized START-APPW: "%QUOTE%%ProgramFiles%\7-Zip\7z.exe%QUOTE% a -t7z
-y -mx=9 %. COUNT% %. COUNT%"
ELSE MSG: "Hе найден архиватор" THEN ;
Изначально вместо %. COUNT% было %MyVal COUNT% и в начале процедуры разумеется
было объявление переменных и PLACE в них. А хочется обойтись вообще без
переменных. Ведь данные лежат в стеке, как их оттуда взять не помещая в
переменную? Hу и в довесок нужно сделать замену всех вставок на конкретный
текст и префиксный вариант процедуры.
Ковырялся в доках nnCron, нашёл такой экземпл
\ префиксная нотация:
MSG: "%USERNAME%"
\ постфиксная нотация:
USERNAME MsgBox
\ впрочем, можно и так (с потерей эффективности):
S" %USERNAME%" EVAL-SUBST MsgBox
попробовал повставлять в своей процедуре %EVAL-SUBST% вместо ". COUNT", всё
равно nnCron падает с ошибкой стека.
А в исходниках nnCron вообще нашёл такое объявление:
: MSG: eval-string, POSTPONE MsgBox ; IMMEDIATE
Что за eval-string, POSTPONE и EVAL-SUBST ??? В книгах по SP-Forth ничего о них
не нашёл.
В общем, как заставить мою процедурку работать нормально со строками и как ей
префиксный вариант правильно прикрутить? А то я уже не знаю, в какую сторону
ковырять, чтобы оно нормально заработало :(
--
Best regards,
Ruslan Jakovlev