回 帖 发 新 帖 刷新版面

主题:[原创]如何理解宏代换&   (看者受益)

宏代换&是一个功能强大的函数,它有代换、计算等作用。
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








回复列表 (共16个回复)

11 楼



用宏代换,可以增加程序的灵活性,但也带来了降低效率的负面影响,所以,不宜多用,另外,也有相当的复杂性,要非常谨慎才行,例如楼主的下列应用就出错了.

AA=‘姓名'
bb='李明'
replace &aa with &bb
最后一句应该是:
replace &aa with '&bb'
才对.
所以在运用之前,先在VFP运行环境中调试好是非常必要的.

12 楼

长见识了

13 楼

长见识了!!!!

14 楼

多谢楼主和wuzhouhong!

我用()就很简单地解决了文件名中含空格是会出错的问题

如果有哪位也碰到类似问题,不妨一试

15 楼

有收获!!

16 楼


是啊,有没有研究VFP编程问题的QQ群啊?

我来回复

您尚未登录,请登录后再回复。点此登录或注册