文档介绍:第6章数据库的辅助操作命令
内存变量数组和屏幕型内存变量
有关变量的操作
文件操作命令
几个通用命令
内存变量数组和屏幕型内存变量
内存变量数组
在FoxPro中, 用户可使用数组, 但首先应定义数组。
1. 定义数组命令——DIMENSION
命令格式: DIMENSION〈数组名1〉
(〈数字表达式1〉[, 〈数字表达式2〉])
[,〈数组名2〉(〈数字表达式1〉[,〈数字表达式
2〉])…]
本命令可以定义若干个一维或二维数组。
例 1
DIMENSION X(4), Y(2, 3)
此例建立了两个数组X和Y。数组X由1列4行组成, 共4个单元; 数组Y由2行3列组成, 共6个单元。
此命令执行后, .; 但以后可以给各单元赋不同类型的值。
2. 使用数组——下标变量
尽管一个数组是一个变量(数组变量), 但它的每一个单元都可像一个一般变量那样被使用。数组单元是以下标来区分的, 也称为下标变量。下标的起始值为1。
例如, 在上面的例子中, 数组X有4个下标: X(1)、 X(2) 、 X(3)、 X(4); 数组Y有6个下标: Y(1, 1)、 Y(1, 2)、 Y(1, 3)、 Y(2, 1)、 Y(2, 2)、 Y(2, 3)。
总结如下:
①一个数组只算作一个内存变量, 但每个单元都可像一个内存变量一样使用。因此, 称为下标变量。;
②数组必须先定义, 后使用。定义时, ., 但以后可存入其它类型的值。一下标变量的类型即为所存数据的类型。
③每个字符型下标变量需占内存数为该字符变量的字符个数加7, 其它类型的下标变量不增加额外的内存空间。
④二维下标变量可用单下标方式访问。如, 二维数组X(2, 3)中, 各下标变量的存储顺序为(1, 1)、(1, 2)、(1, 3)、(2, 1)、(2, 2)、(2, 3)。因此, 下标变量X(2, 1)可用X(4)调用。为清晰起见, 用单下标访问2维数组时, 单下标称为序号。
⑤定义数组时, 也可用方括号。方括号与圆括号完全等价。
例 3
DIMENSION AA[2, 4]
DIMENSION AA(2, 4)
是等价的。
⑥可以用DIMENSION命令重新定义一个已经存在的数组, 以改变它的维数和大小。重新定义后, 只要下标变量个数增加了, 则原数组的各下标变量值将依次拷贝到新数组的下标变量中, .。重新定义后, 若下标变量数减少了, 被减少的下标变量及其内容也就被删掉了。
3. 当前记录数据送入变量——SCATTER命令
命令格式: SCATTER [FIELDS〈字段名清单〉]
[MEMO]TO〈数组名〉/TO〈数组名〉BLANK/MEMVAR/MEMVAR BLANK;
功能: 把当前打开库文件的当前记录内容, 以字段为单位拷贝到一个数组或一组内存变量中。若数组或内存变量不存在, 则首先自动生成之。
FIELDS〈字段名清单〉: 无此项时, 将拷贝所有字段; 否则, 只拷贝列出的字段。
MEMO: 无此项时, 将忽略记忆型字段。若〈字段名清单〉中有记忆型字段, 必须使用本项。执行SCATTER时, 若内存不够, 将显示“Insufficient memory”。
TO〈数组名〉: 按序把字段内容分别拷贝到该数组对应次序的下标变量中。
TO〈数组名〉BLANK: 选择此项, 则仅仅建立数组, 但不拷贝内容。
MEMVAR: 选用此项, 将为每一个要拷贝字段建立一同名、同类型、同宽度的内存变量, 并把字段内容拷贝过去。
MEMVAR BLANK: 此项将为每一个要拷贝字段建立一同名、同类型、同宽度的内存变量, 但并不把字段内容拷贝过去。