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