微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题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后面只能跟文件名字符串,不能用字符型变量,因此只能使用宏代换实现。