陣列 - 定義和訪問

Progress 支援一維陣列,但它們被稱為 EXTENTS

/* Define a character array with the length 5, and display it's length */
DEFINE VARIABLE a AS CHARACTER EXTENT 5 NO-UNDO.
DISPLAY EXTENT(a).

使用標準c 型支架訪問陣列中的各個位置。但索引從 1 開始。最大大小為 28000。

a[1] = "A".
a[2] = "B".
a[3] = "C".
a[4] = "D".  
a[5] = "E".

DISPLAY a[5].

結果:

StackOverflow 文件

索引 0 將生成錯誤:

DISPLAY a[0].

結果:

StackOverflow 文件

你還可以定義不具有設定長度的不確定陣列。長度(範圍)可以在執行時設定。但只有一次!

DEFINE VARIABLE a AS CHARACTER EXTENT NO-UNDO.
EXTENT(a) = 10.
EXTENT(a) = 1.

第三行將產生以下錯誤: StackOverflow 文件

你可以使用 DEFINE VARIABLE 語句中的 INITIAL 選項來設定初始值。

DEFINE VARIABLE a AS CHARACTER EXTENT 3 INITIAL ["one","two","three"] NO-UNDO.
/* Some statements (like DISPLAY) can handle a whole array: */
DISPLAY a.

結果:

StackOverflow 文件

如果未設定所有範圍,則剩餘的將獲得最後設定的值:

DEFINE VARIABLE a AS CHARACTER EXTENT 10 INITIAL ["one","two","three"] NO-UNDO.
DISPLAY a.

結果:

StackOverflow 文件