dBASEⅢ中宏代换的应用 吴为 1994-05-27 1.用&函数实现数组 在dBASEⅢ中没有定义数组这样一种数据类型,但是利用循环语句和宏代换可以实现数组这种数据类型。例如,建立一个二维数组A。其数组元素为: A11,A12,……A15 A21,A22,……A25 A51,152,……A55 并把元素的初值全部置为0。其程序如下: STOR 1 TO J,K DO WHILE J<=5 P=STR(J,1) K=1 DO WHILE K<=5 H=STR(K,1) A&P&H=0 K=K+1 ENDDO J=J+1 ENDDO LIST MEMO 程序中第3行和第6行是把数字型换成字符型,因为&函数要求字符型内存变量。最后一行用于列出建立的数组中的各元素。 2.用&函数实现文件名的随机输入 当数据库文件很多时,不可能在菜单中一一列出,这时可用&函数实现文件名的随机输入,以便可以打开用户指定的任意数据库或执行任意指定的模块。 下面程序可用于打开随机输入文件名的库文件,当输入的文件有错时程序提供了保护,直到重新输入正确为止。 DO WHILE .T. ACCEPT '请输入库文件名:'TO NAME IF .NOT. FILE('&NAME DBF) CLEAR @ROW()+1,5 SAY NAME+; '数据库没找到,请重新输入' ELSE EXIT ENDIF ENDDO USE & NAME 3.用&函数简化主控菜单程序 组织菜单程序中的分支选择可以使用DO CASE语句,但菜单选项很多时,将会使CASE语句行大量增加,使程序繁锁。用&函数即可使之简化。 SET TALK OFF CLEAR TEXT 0 - 退出系统 SR - 输入 SC - 输出 TJ - 统计 ENDTEXT DO WHILE .T. H=" " @10,22 SAY'请按要求输入模块名:' GET H READ IF H='0' EXIT ENDIF DO &H ENDDO 由于在DO后面只能跟文件名字符串,不能用字符型变量,因此只能使用宏代换实现。