微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题在FOXBASE+中使用数组应注意的几个问题
栏目软件操作与技巧
作者王一军
发布1995-11-17
  1、数组不能定义成全局变量,只能做为局部变量使用。但反过来,全局变量可以用来定义数组的下标。
  例如执行下列语句:
  PUBLIC AAA
  DIME AAA(5)
  则出现‘SYNTAX ERROR'的错误提示,而执行
  PUBLIC AAA
  AAA=5
  DIME BBB(AAA)
  则能正确执行。
  2、数组间不能直接赋值。执行下列命令:
  DIME AAA(3)
  AAA(1)=1
  AAA(2)="12345"
  AAA(3)=5
  DIME BBB(3)
  BBB=AAA
  通过执行LIST MEMO命令或按F7键查看内存变量,却得到BBB(1)=BBB(2)=BBB(3)=1的信息,数组BBB只取了数组AAA第一个分量的类型与内容,并没有达到预定效果。
  3、数组不能重复定义。执行下列命令:
  DIME AAA(5)
  ...
  程序体,没有清除内存变量命令
  ...
  DIME AAA(5)
  则会出现‘SYNTAX ERROR”的错误提示。在实际工作的意义是不要把定义数组的命令放在循环体中,除非在重新执行循环体前将其清除。
  4、在编制录入程序时,往往需要先将数据保存到数组中,然后再利用GATH命令传送到当前数据库当前记录中。这样在定义数组时,需根据数据库结构定义数组分量个数和类型,传送到数据库后,为了再次录入,还得重新将数组初始化,如果数组分量个数很多且类型不一的话,虽简单但十分繁琐。笔者通过实践,找到了一个较好的方法:利用与当前数据库相同结构但没有记录的数据库进行定义。
  例如用数组AAA与数据库BBB进行数据交换,则用下列方法定义:
  USE BBB
  COPY STRU TO CCC
  USE CCC
  SCAT TO AAA
  这样就非常迅速地完成了数组AAA的定义。在录入数据后,执行
  USE BBB
  GATH FROM AAA
  完成数据传送后,再执行
  USE CCC
  SCAT TO AAA
  即可将数组AAA重新初始化,既方便快速,又可避免因数据类型或数据宽度定义不当而引起错误。(王一军)