请详解Foxpro中的 & 宏替换函数

越详细越好谢谢因为我的老师说宏替换函数是最难的要放到最后讲我想提前详细了解一下!... 越详细越好 谢谢
因为我的老师说宏替换函数是最难的要放到最后讲 我想提前详细了解一下!
展开
 我来答
佘芷兰w1
2007-03-31 · TA获得超过184个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:0
展开全部
执行宏替换。
& VarName[.cExpression]
参数
& VarName
指定宏替换中引用的内存变量名或数组元素名。请不要加上用于区分内存变量与字段的前缀 M.,否则将产生语法错误。宏的长度不要超过 Visual FoxPro 中允许的最大语句长度。
在宏替换中,变量不能递归引用其自身。例如,下列语句将产生错误信息:
STORE '&gcX' TO gcX
? &gcX
出现在 DO WHILE、FOR 和 SCAN 中的宏替换语句只在循环开始时计算值,在后续的循环中则不再计算值。因此在循环内改变内存变量和数组元素的值对宏替换都无效。
.cExpression
句点分隔符 (.) 和 cExpression 选项可用来在宏后面追加额外的字符。使用 .cExpression 附加在宏后面的 cExpression 也可以是一个宏。如果 cExpression 是一个属性名, 包括一个额外的点号 (cExpression..PropertyName)。
备注
宏替换把内存变量和数组元素中的内容当作原义字符串。当连字符 (&) 位于字符型内存变量或数组元素前面时,内存变量和数组元素的内容将替代宏引用。宏替代可用在任何接受原义字符串的命令和函数中。
提示 请尽可能使用名称表达式来取代宏替换。名称表达式与宏替换作用相似,但是,名称表达式限于传递作为名称的字符串。当命令或函数接受名称(文件名、窗口名、菜单名等)时,使用名称表达式的处理速度要明显快得多。有关名称表达式的详细内容,请参阅语言概述。
下列代码可以正确执行:
STORE 'customer' TO gcTableName
STORE 'company' TO gcTagName
USE &gcTableName ORDER &gcTagName
但是可以使用名称表达式代替:
USE (gcTableName) ORDER (gcTagName)
宏替换对于替换命令中的关键字是很有用的。在下面的示例中,把 TALK 设置保存在内存变量中,以便后面的程序能够恢复它。TALK 的原始设置使用宏替换恢复。
示例
STORE SET('TALK') TO gcSaveTalk
SET TALK OFF
*
* 额外的程序代码
*
SET TALK &gcSaveTalk && 恢复原始的 TALK 设置
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式