在VF中,可以使用命令dimension或()说明数组变量
发布网友
发布时间:2022-04-07 09:33
我来回答
共2个回答
热心网友
时间:2022-04-07 11:03
declare
定义数组:
DECLARE | DIMENSION 数组名(下标1,下标2,……)
热心网友
时间:2022-04-07 12:21
DIMENSION 命令
创建一维或二维内存变量数组。
DIMENSION ArrayName1(nRows1 [, nColumns1])
[, ArrayName2(nRows2 [, nColumns2])] ...
参数
ArrayName1
指定数组名。可以通过包含多个数组名(ArrayName2, ArrayName3 等)用一个 dimension 命令创建多个数组。
nRows1 [, nColumns1]
指定要创建的数组大小。如果只包含 nRows1,就创建一维数组。一维数组含有一列和 nRows1 行。例如,下列命令创建一个名为 gaArrayOne 的一列十行的数组:
DIMENSION gaArrayOne(10)
若要创建二维数组,应包含 nRows1 和 nColumns1。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 命令可以改变数组的大小和维数。数组的大小可以增加或减小,一维数组可以转换为二维数组,二维数组可以降低为一维数组。
注意 如果一个两维数组用较少的行或列重定义, 减少的元素数, 不是按行数或列数。例如, 一个 10 * 10 的数组重定义为 10 * 7 将丢失所有 71 及以上的元素数据。详细信息, 参见AELEMENT() 函数。
如果数组中元素的数目增加了,就将原数组中所有元素内容复制到维数重新调整过的数组中,增加的数组元素初始化为“假”(.F.)。
当 SET COMPATIBLE 设置为 ON 或 DB4 时数组大小的增加或减少, 数组中各元素的值重新初始化为 .F.。
示例
示例 1 演示增加一维数组大小。(注意,如果在命令窗口中键入这些命令,数组就是 public 型的,但是如果这些命令在一个程序中运行,数组就是 private 的)。
如果数组中元素的数目减少了,就删除这些元素和它们包含的所有数据。当一个一维数组变为二维数组时,原先一维数组中的内容就以行优先的顺序,复制到新数组中。
示例 2 将一维数组转换成二维数组。一维数组中元素的内容复制到新数组的第一行,接下来是第二行。增加的元素初始化为“假”(.f.)。
当一个二维数组转化成一维数组时,原先二维数组中的内容以行优先的顺序复制到新数组中。二维数组中第一行的第一个元素成为一维数组中的第一个元素,二维数组中第一行的第二个元素变成一维数组中的第二个元素,等等。
可使用 adel( ) 或 ains( ) 删除或插入数组元素、行和列。使用 append from array、copy to array、scatter 和 gather 在表记录和数组之间传输数据。
示例 3 创建二维数组并填加了数据。然后显示数组元素和它们所包含的数据。
* Example 1
DIMENSION marray(2)
STORE 'A' TO marray(1)
STORE 'B' TO marray(2)
CLEAR
DISPLAY MEMORY LIKE marray
DIMENSION marray(4)
DISPLAY MEMORY LIKE marray
WAIT WINDOW
* Example 2
DIMENSION 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
* Example 3
DIMENSION 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