3.5.1 宏的参数
前面的例子通过宏文件集成了一系列命令,使用户可以很方便地反复执行,但如果用户希望读取不同文件组,或者乘以其他数值时,必须修改文件。其实,在创建宏文件时,参与运算的数值、供读写的数据文件均可用形式参数实现,这样在执行宏时通过输入实际参数,可以大大增加宏的灵活性。
1.一般参数
在前面例子中,如果将文件名作为形式参数,可以写成:
READ$1$2$3
MUL 4 8 9
FFT
BG SGF
PSP AM
其中美元符号(“$”)用于定义宏文件的形式参数,$1是第一个参数,$2是第二个参数,$3是第三个参数,依次类推。在SAC2000下执行修改后的宏,键入:
u:MACRO MYSTUFF ABC DEF XYZ
此时标号“ABC”替代文件中的所有“$1”,而“DEF”和“XYZ”分别代替“$2”和
“$3”。用同一个宏处理不同文件组时,只需改变输入参数命令即可:
u:MACRO MYSTUFF AAA BBB CCC
2.关键词驱动参数
关键词驱动参数允许用户以任意次序输入参数,同时使宏文件更易理解,随着参数个数和宏文件命令的增加,这一点会变得越来越重要。修改前面的例子以便接受文件表和乘数表:$KEYS FlLES VALUES
READ$FILES
MUL$VALUES
FFT
BG SGF
PSP AM
这个简单的变化同时增加了宏文件的灵活性和可读性,第一行说明有两个关键词,其中一个叫“FILES”,另一个叫“VALUES”。执行它要输入:
u:MACRO MYSTUFF FILES ABC DEF XYZ VALUES 4 8 9
因为参数次序不再重要,你也可键入:
u:MACRO MYSTUFF VALUES 4 8 9 FILES ABC DEF XYZ
这个宏并不仅限于读取三个文件,只要输入的文件数与乘数的个数相匹配,对两个甚至10个文件,都能同样处理。
3.缺省参数值
有时在多次执行一个宏文件时,一些参数经常(但不总是)具有相同的取值。提供参数缺省值后,每次操作便不再需要反复输入相同的值,但都允许在需要时灵活修改这些值。这一点可由下面的例子得到说明:
$KEYS FILES VALUES
$DEFAULT VALUES 4 8 9
READ$FILES
MUL$VALUES
FFT
BG SGF
PSP AM
这个宏第二行特别指定了缺省值,用于置换变量“VALUES”,如果在执行行不输入其值,那么它就取其缺省值:
u:MACRO MYSTUFF FILES ABC DEF XYZ
也可使用不同参数值,例如:
u:MACRO MYSTUFF VALUES 10 12 3 FILES ABC DEF XYZ
如果在执行宏文件时忘记输入所必需的参数值,而它又没有缺省值,SAC2000将要求
在终端输入参数值。例如:
u:MACRO MYSTUFF
s:FILES?
u:ABC DEF XYZ
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。