示例: 初始化数据项

以下示例显示如何使用 INITIALIZE 语句来初始化多种类型的数据项,包括字母数字,本地编辑和数字编辑的数据项。

INITIALIZE 语句在功能上等同于一个或多个 MOVE 语句。 有关初始化的相关任务显示了如何对组项使用 INITIALIZE 语句来方便地初始化给定数据类别中的所有下级数据项。

将数据项初始化为空白或零:


INITIALIZE identifier-1

identifier-1 PICTURE identifier-1 之前 identifier-1 之后
9(5) 12345 00000
X(5) AB123 bbbbb1
N(3) 4100420031002 2000200020003
99XX9 12AB3 bbbbb1
XXBX/XX ABbC/DE bbbb/bb1
**99.9CR 1234.5CR **00.0bb1
A(5) ABCDE bbbbb1
+99.99E+99 +12.34E+02 +00.00E+00
  1. 符号 b 表示空格。
  2. 本地 (UTF-16) 字符 "AB1" 的十六进制表示此示例假定 identifier-1 具有 Usage National
  3. 本地 (UTF-16) 字符 "   " 的十六进制表示法 (三个空格)请注意,如果 identifier-1 未定义为 Usage National,并且 NSYMBOL(DBCS) 已生效,那么 INITIALIZE 将改为将 DBCS 空间 ('2020') 存储到 identifier-1中。

初始化字母数字数据项:


01  ALPHANUMERIC-1    PIC X    VALUE "y".
01  ALPHANUMERIC-3    PIC X(1) VALUE "A".
. . .
    INITIALIZE ALPHANUMERIC-1
        REPLACING ALPHANUMERIC DATA BY ALPHANUMERIC-3

ALPHANUMERIC-3 ALPHANUMERIC-1 早于 ALPHANUMERIC-1 晚于
A y A

初始化字母数字右对齐数据项:


01  ANJUST            PIC X(8)  VALUE SPACES  JUSTIFIED RIGHT.
01  ALPHABETIC-1      PIC A(4)  VALUE "ABCD".
. . .
    INITIALIZE ANJUST
        REPLACING ALPHANUMERIC DATA BY ALPHABETIC-1

ALPHABETIC-1 ANJUST 早于 ANJUST 晚于
ABCD bbbbbbbb1 bbbbABCD1
  1. 符号 b 表示空格。

初始化由字母数字编辑的数据项:


01  ALPHANUM-EDIT-1   PIC XXBX/XXX  VALUE "ABbC/DEF".
01  ALPHANUM-EDIT-3   PIC X/BB      VALUE "M/bb".
. . .
    INITIALIZE ALPHANUM-EDIT-1
        REPLACING ALPHANUMERIC-EDITED DATA BY ALPHANUM-EDIT-3

ALPHANUM-EDIT-3 ALPHANUM-EDIT-1 早于 ALPHANUM-EDIT-1 晚于
M/bb1 ABbC/DEF1 M/bb/bbb1
  1. 符号 b 表示空格。

初始化国家或区域数据项:


01  NATIONAL-1        PIC NN  USAGE NATIONAL  VALUE N"AB".
01  NATIONAL-3        PIC NN  USAGE NATIONAL  VALUE N"CD".
. . .
    INITIALIZE NATIONAL-1
        REPLACING NATIONAL DATA BY NATIONAL-3
    INITIALIZE NATIONAL-1 NATIONAL TO VALUE

NATIONAL-3 第一个 INITIALIZE 之前的 NATIONAL-1 首次 INITIALIZE 后的 NATIONAL-1 NATIONAL-1 在第二次 INITIALIZE 之后
430044001 410042002 430044001 41004200
  1. 本地字符 "CD" 的十六进制表示法
  2. 本地字符 "AB" 的十六进制表示法

初始化国家编辑的数据项:


01  NATL-EDIT-1       PIC 0NN  USAGE NATIONAL  VALUE N"123".
01  NATL-3            PIC NNN  USAGE NATIONAL  VALUE N"456".
. . .
    INITIALIZE NATL-EDIT-1
        REPLACING NATIONAL-EDITED DATA BY NATL-3

NATL-3 NATL-EDIT-1 早于 NATL-EDIT-1 晚于
3400350036001 3100320033002 3000340035003
  1. 本地字符 "456" 的十六进制表示法
  2. 本地字符 "123" 的十六进制表示法
  3. 本地字符 "045" 的十六进制表示法

初始化数字 (分区十进制) 数据项:


01  NUMERIC-1         PIC 9(8)        VALUE 98765432.
01  NUM-INT-CMPT-3    PIC 9(7)  COMP  VALUE 1234567.
. . .
    INITIALIZE NUMERIC-1
        REPLACING NUMERIC DATA BY NUM-INT-CMPT-3

NUM-INT-CMPT-3 NUMERIC-1 早于 NUMERIC-1 晚于
1234567 98765432 01234567

初始化数字 (本地十进制) 数据项:


01  NAT-DEC-1         PIC 9(3)  USAGE  NATIONAL VALUE 987.
01  NUM-INT-BIN-3     PIC 9(2)  BINARY VALUE 12.
. . .
    INITIALIZE NAT-DEC-1
        REPLACING NUMERIC DATA BY NUM-INT-BIN-3

NUM-INT-BIN-3 NAT-DEC-1 早于 NAT-DEC-1 晚于
12 3900380037001 3000310032002
  1. 本地字符 "987" 的十六进制表示法
  2. 本地字符 "012" 的十六进制表示法

初始化数字编辑 (USAGE DISPLAY) 数据项:


01  NUM-EDIT-DISP-1   PIC $ZZ9V  VALUE "$127".
01  NUM-DISP-3        PIC 999V   VALUE 12.
. . .
    INITIALIZE NUM-EDIT-DISP-1
        REPLACING NUMERIC-EDITED DATA BY NUM-DISP-3

NUM-DISP-3 NUM-EDIT-DISP-1 早于 NUM-EDIT-DISP-1 晚于
012 $127 $ 12

初始化数字编辑 (USAGE NATIONAL) 数据项:


01  NUM-EDIT-NATL-1   PIC $ZZ9V  NATIONAL VALUE N"$127".
01  NUM-NATL-3        PIC 999V   NATIONAL VALUE 12.
. . .
    INITIALIZE NUM-EDIT-NATL-1
        REPLACING NUMERIC-EDITED DATA BY NUM-NATL-3

NUM-NATL-3 NUM-EDIT-NATL-1 早于 NUM-EDIT-NATL-1 晚于
3000310032001 24003100320037002 24002000310032003
  1. 本地字符 "012" 的十六进制表示法
  2. 本地字符 "$127" 的十六进制表示法
  3. 本地字符 "$ 12" 的十六进制表示法