DI M E N S I O N 命 令
创建一维或两维数组
语 法
DIMENSION ArrayName1 ( nRows1 [, nColumns1 ]) [, ArrayName2 ( nRows2 [, nColumns2 ])] ...
参 数 描 述
ArrayName1
指 定 数 组 名 可 以 通 过 包 含 多 个 数 组 名 ArrayName2 , ArrayName3 等 用 一个 DIMENSION 命 令 创 建 多 个 数 组
nRows1 [, nColumns1 ]
指 定 要 创 建 的 数 组 大 小 如 果 只 包 含 nRows1 就 创 建 一 维 数 组 一 维 数 组 含有 一 列 和 nRowsl 行 例 如 下 列 命 令 创 建 一 个 名 为 的 一 列 十 行 的数 组
DIMENSION gaArrayOne(10)
若 要 创 建 二 维 数 组 应 包 含 nRows1 和 nColumn1 nRows1 指 定 数 组 中 的 行 数nColumns1 指定列数 下 列 命 令 创 建 一 个 名 为 gaArrayTwo 的 二 行 四 列 的 二 维 数组
DIMENSION gaArrayTwo(2,4)
使 用 DIMENSION 创 建 数 组 时 必 须 指 定 大 小 在 下 面 的 示 例 中 创 建 了 三个 数 组 前 面 两 个 示 例 中 的 数 组 gaArrayOne 和 gaArrayTwo 以 及 第 三 个 名为 gaArrayThree 的 数 组
DIMENSION gaArrayOne(10), gaArrayTwo(2,4), gaArrayThree(3,3)
在 DIMENSION 或 DECLARE 中 可 以 用 方 括 号 或 圆 括 号 括 起 表 达 式例 如 下 面 的 两 个 命 令 创 建 相 同 的 数 组
DIMENSION gaArrayOne(10), gaArrayTwo[2,4], gaArrayThree(3,3) DIMENSION gaArrayOne[10], gaArrayTwo(2,4), gaArrayThree[3,3]
说 明
DIMENSION 的操作和 语法 与 DECLARE 相同
数 组 元 素 … 一个数组的大小决定了它包含的元素数目 数组中的每个元素可以存储
一条信息 要确定一个数组中包含的元素数目和存储的信息量 可用数组的行
( nRows1 ) 数乘以数组的列数 ( nColumns1 )
数组元素可以包含任何类型的数据 并在最初创建数组时将它们初始化为 假
(.F.) 如果 SET COMPATIBLE 设置为 FOXPLUS 或 OFF 默认设置 那么可以用
STORE 将一个数组中所有元素初始化为相同的值 例如
DIMENSION gaArray(10,3)
STORE 'initial' TO gaArray
数 组 下 标 … 通过下标来引用数组中的元素 每个数组元素都有唯一一个可以识别它的数值下标 如果数组是一维的 则数组元素的下标与它的行号相同 例如 一个一维数组第三行中元素的下标就是 3
通过两个下标来引用二维数组中的元素 第一个下标表明元素的行位置 第二个下标表明元素的列位置 例如 一个二维数组第三行第四列中的元素下标为 3 4 有关数组元素下标的进一步讨论 请参阅 ASUBSCRIPT ( )
数组中第一个元素的下标通常从 1 开始 如果数组是二维的 也可以用单个下标引用它 使用 AELEMENT ( ) 根据数组的行列下标返回单个下标 使用 ASUBSCRIPT( ) 根据单个下标返回行列下标
重 新 定 义 数 组 的 维 数 … 重新执行 DIMENSION 命令可以改变数组的大小和维数 数组的大小可以增加或减小 一维数组可以转换为二维数组 二维数组可以降低为一维数组
如果数组中元素的数目增加了 就将原数组中所有元素内容复制到维数重新调整过的数组中 增加的数组元素初始化为 假 (.F.)
示 例
示例 1 演示了一维数组增量的结果 注意 如果您是在 命令 窗口中输入这些命令将是 PUBLIC 的 但是如果您将它们复制到程序中并运行 这些命令将是
PRIVATE 的
如果数组中元素的数目是递减的 删除元素和它们包含的数据 当一维数组重新定义为二维数组时 原始一维数组的内容按照从元素到行的顺序复制到新的数组中
在 示例 2 中 一个一维数组转换为一个二维数组 一维数组元素的内容首先复制到新的数组的第一行中 再向数组的第二行复制 以此类推 附加的元素初始化为 (.F.)
当二维数组转换为一维数组时 原始的二维数组的内容按照行到元素的顺序复制到新的数组中 第一行第一个元素成为一维数组的第一个元素 第一行第二个元素成为第二个元素 以此类推
使用 ADEL( ) 或 AINS( ) 删除或插入数组元素 行和列 使 用 APPEND FROM ARRAY COPY TO ARRAY SCATTER 和 GATHER 传输在表记录和数组之间的数据
在 示例 3 中 创建了一个二维数组并加载了数据 显示数据元素和它们包含的数据
- 示例
1
marray(2) STORE 'A' TO marray(1) STORE 'B' TO marray(2) CLEAR
DISPLAY MEMORY LIKE marray
marray(4) DISPLAY MEMORY LIKE marray WAIT WINDOW
- 示例
2
marrayone(4)
STORE 'E' TO marrayone(1) STORE 'F' TO marrayone(2) STORE 'G' TO marrayone(3) STORE 'H' TO marrayone(4) CLEAR
DISPLAY MEMORY LIKE marrayone DIMENSION marrayone(2,3) DISPLAY MEMORY LIKE marrayone WAIT WINDOW
- 示例
3
sample(2,3) STORE 'Goodbye' TO sample(1,2) STORE 'Hello' TO sample(2,2) STORE 99 TO sample(6)
STORE .T. TO sample(1)
CLEAR
DISPLAY MEMORY LIKE sample
请 参 阅
ACOPY ( ) , ADEL( ) , ADIR( ) , AELEMENT( ) , AFIELDS( ) , AFONT( ) , AINS( ) , ALEN( ) , APPEND FROM ARRAY , ASCAN( ) , ASORT( ) , ASUBSCRIPT( ) , COPY TO A R R A Y , DECLARE , EXTERNA L , GATHER , PRIVATE , PUBLIC , SCATTER , SET COMPATIBLE , STORE