Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Работа со строками

7 views
Skip to first unread message

Ruslan Jakovlev

unread,
Sep 24, 2008, 5:09:42 AM9/24/08
to
Hello, All !

Может хоть тут помогут.
Ковырялся с процедурками. Вроде разобрался. Тепереча встала проблема, как
передать процедуре параметры (в частности строку), так чтобы не использовать
дополнительно переменные.

Вот процедура, которую я пишу

: 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

0 new messages