漫步者s301 cm202:VFP 数组应用

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 15:13:11

FoxPro数组操作

数组在FoxPro中有着广泛的应用,例如用它来构造和显示菜单、存储和显示数据库记录等。FoxPro支持一维和二维数组,允许数组元素具有不同的数据类型。数组使用前必须先定义,定义数组用DIMENSION或DECLARE命令。


数组的定义

格式1:DIMENSION <数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])]

格式2:DECLARE <数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])]…

说明:

1、两个命令功能相同,都是用来定义数组。

2、一维数组数据个数由数值表达式1的值确定。例如DIMENSION a1(10)定义了一个含有10个元素的名为a1的一维数组。通过下标可以确定各个特定的数组元素,下标从1开始,各元素是顺序排列的。

3、二维数组中的数据按行序排列。行数由数值表达式1的值确定,列数由数值表达式2的值确定。例如DIMENSION a2(2,3)定义了一个含有6个元素的名为a2的二维数组,其数组排列顺序如下表:

a2(1,1) a2(1,2) a2(1,3) a2(2,1) a2(2,2) a2(2,3)

4、数组定义以后系统为每个数组元素自动赋予逻辑假值F。


数组元素的赋值

可以用赋值命令对数组元素赋值,也可对整个数组赋值。

格式1:STORE <表达式> TO <数组>

格式2:<数组>=<表达式>

说明:第一个命令是对整个数组赋值,第二个命令是对数组元素赋值。


数组与数据库文件记录间的数据交换

1、数据库文件记录值传送到数组

格式:SCATTER[FIELDS <字段表>] TO <数组> [BLANK]|MEMVAR[BLANK]

功能:把数据库文件当前记录中的数据传送到数组或一组内存变量中。

说明:

①将当前记录字段表中指定字段变量的值,按先后顺序传送给数组的各个元素,数组元素的类型根据记录的字段值决定;若无可选项FIELDS<字段表>,则传送所有字段。

②如数组元素的个数多于字段变量的个数,则剩余那些数组元素的值不受影响;否则系统自动扩大数组的数组的个数。

③若选用TO <数组> BLANK短语,则会自动生成一个数组,其中各个元素与当前数据库文件相应字段的类型和长度完全相同,但数组是空的。

④若选用TO MEMVAR短语,则将当前记录传送到一组内存变量中,这些变量不仅与数据库文件相应字段同名,且类型与长度也相同。
⑤若选用TO MEMVAR BLANK短语,将建立一组具有空值的内存变量。

2、数组中的数据传送到数据库文件

格式:GATHER FROM <数组> | MEMVAR [FIELDS <字段表>]

功能:把数组或内存变量中的数据传送到数据库文件当前记录中。

说明:

①从数组的第一个元素开始,顺序地将其传送到所指定的字段。要求数组元素的类型符合各字段变量的类型。

②如果数组元素的个数少于字段数,则当前记录中其余字段的值不受影响,反之则不考虑其余的那些数组元素。

③如果选用MEMVAR短语,则将若干与字段名相同的内存变量的数据传送到当前的记录中。