Той темы уже не существует, ровно как и функции
PlayMacro, на смену которой пришла
eval.
Что касается подхода типа "документация не требуется" - то он хорош только если пишешь для личного пользования
(да и то через время бывает трудно понять что сам наворотил)
Предложения по титульному посту топика
Все кто бывал на форуме
ru-board наверно обратили внимание на замечательную особенность: первый пост темы как правило сделан "шапкой" - повторяется на каждой странице, аккумулирует содержание топика, содержит перекрёстные ссылки на связанные темы...
Вот и на нашем форуме неплохо бы поддержать такую традицию.
В частности сабжевая тема заслуживает иметь титульный пост, в котором идея использования подпрограмм в макросах будет описана так, чтобы и новичок мог что-то почерпнуть.
"Конвенции" стоит описать явно. Там же упомянуть о трансляции с помощью FMM (и других утилит), и не повторять потом это в каждом новом сообщении.
2 HaRT: Вполне можно убрать из первого поста старую версию Trim и сделать титульный пост действительно титульным.
Замечания к конвенциям
Поддерживаю конвенцию именования локальных переменных с префиксом, соответствующим названию подпрограммы
(на примере подпрограммы
Trim - префикс %Trim_)
Но категорически против однобуквенных переменных типа %Trim_
s, %Trim_
w, %Trim_
o, %Trim_
l: краткость не должна идти в ущерб понятности
На мой взгляд допустимы разве что однобуквенные переменные-итераторы (i,j = %Trim_
i, %Trim_
j)
Чтобы отличать в реестре подпрограммы от обычных глобальных переменных предлагаю использовать для подпрограмм префикс
%%Sub_:
%%Sub_Trim
Результат подпрограммы красивее возвращать не в %_0, а в одноимённый параметр
(если подпрограмма %%Sub_Trim, то возвращаемое значение - в переменной %Trim)
Что касается параметров, то вместо %_1 %_2 %_3 предлагаю использовать %Trim_1 %Trim_2 %Trim_3.
Врочем, какой смысл класть основу наименований передаваемых параметров "позиционность" которой на самом деле нет?
Я лично использовал бы что-то осмысленное вместо _1 _2 _3.