注册 登录
编程论坛 VFP论坛

[原创]宏代换&

vfp123456 发布于 2006-07-05 09:48, 816 次点击

宏代换&是一个功能强大的函数,它有代换、计算等作用。
AA='ABCDE'
?&AA
?'&AA'
上面这两个显示语句是否都有执行?如果有不能执行的,为什么?

如何理解宏代换&? 我们知道1,2,3与一,二,三表达的内容是一样的,只是写法不同。那么,&AA就可以看成是ABCDE的另一个写法,在程序中遇到&AA就可以用ABCDE去替换,替换后,你就可以看明白了。用此方法,回答上面的问题,答案就一目了然了。
应用例子:
FOR N=1 TO 30
NS=ALLTRIM(STR(N))
THISFORM.CHECK&NS..ENABLED=.T.
NEXT

AA=‘姓名'
bb='李明'
replace &aa with &bb


fors='姓名="李" and 工资>800'
select * from gz where &fors

dd='disp memo like ??'
&dd

3 回复
#2
shanshanai2006-07-05 20:45
?&AA 不可以
?'&AA' 可以

呵呵
好像看明白了!
#3
sylknb2010-05-20 14:56
不太明白?
#4
独木星空2025-03-28 16:27
在命令框输入,主题中的数据(或者信息),敲回车键,带半角引号的,输出结果:ABCDE;但是,不带英语半角引号的,却显示:未找到变量ABCDE;而其实我们要的结果的确是前者(没有找到变量ABCDE),而不是后者。现在的关键问题,宏替换,???  我也表达不出自己,想表达的意思。近几天正在为此发愁,我要的是动态变化值,而不是死值;死值能出现,没用;变化值,不能出现,说找不到变量,又或者操作符与什么不匹配,总之,在程序中,不能正确运用。
1