ALPHABET 子句
ALPHABET 子句提供了将字母名称与指定的字符代码集或整理顺序相关联的方法。
相关的字符代码集或整理顺序可以用于字母数字 数据,但不能用于国家数据。
- ALPHABET alphabet-name-1 是
- alphabet-name-1 指定在以下位置使用时的 整理顺序 :
- 对象-计算机段的 PROGRAM COLLATING SEQUENCE 子句
- SORT 或 MERGE 语句的 COLLATING SEQUENCE 短语
alphabet-name-1 指定在以下位置使用时的字符代码集:
- FD 条目 CODE-SET 子句
- 符号字符子句
如果生效的源代码页是多字节代码页,那么不能指定 ALPHABET 子句。 有关详细信息,请参阅 COBOL for Linux® on x86 Programming Guide中的 指定整理顺序 。
- STANDARD-1
- 指定 整理顺序基于字符的二进制代码值,忽略语言环境设置。
- STANDARD-2
- 指定 整理顺序基于字符的二进制代码值,忽略语言环境设置。
- 本机
- 指定本机字符代码集。 如果省略了 ALPHABET 子句,那么 alphabet-name 与有效语言环境指示的 ASCII , UTF-8或 EUC 字符集相关联。
- EBCDIC
- 指定 EBCDIC 字符集。
- literal-1 , literal-2 , literal-3
- 指定由程序根据以下规则确定字母数字数据的整理顺序:
- 字面值的出现顺序指定此整理顺序中的字符的序数 (按升序排列)。
- 指定的每个数字文字都必须是无符号整数。
- 每个数字文字都必须具有对应于有效整理顺序中的有效有序位置的值。
查看 EBCDIC和ASCII排序规则 ,了解单字节EBCDIC和ASCII排序规则中字符的序号。
- 字母数字文字中的每个字符表示字符集中的实际字符。 (如果字母数字文字包含多个字符,那么将在此整理顺序中为每个字符 (从最左侧开始) 分配一个连续的升序位置。)
- 未显式指定的任何字符都假定此整理顺序中的位置高于任何显式指定的字符。 这些未指定字符的整理顺序中的相对顺序是它们在 COLLSEQ 编译器选项指示的整理顺序中的相对顺序。
- 在一个 alphabet-name 子句中,不能多次指定给定字符。
- 与 THROUGH 或 ALSO 短语关联的每个字母数字文字的长度必须是一个字符。
- 指定 THROUGH 短语时,将在此整理顺序中连续分配本机字符集中以 literal-1 指定的字符开头且以 literal-2 指定的字符结尾的连续字符。
此序列可以在原始本机字符集内升序或降序。 即,如果指定 "Z" THROUGH "A" ,那么大写字母的升序值 (从左到右) 为:
ZYXWVUTSRQPONMLKJIHGFEDCBA - 指定 ALSO 短语时,指定为 literal-1, literal-3, ... 分配给此整理顺序中的相同位置。 例如,如果您指定:
"D" ALSO "N" ALSO "%"在整理顺序中,字符 D , N 和% 都被认为处于同一位置。
- 当指定了 ALSO 短语并且在符号字符子句中引用了 alphabet-name-1 时,仅使用 literal-1 来表示字符集中的字符。
- 在此整理顺序中具有最高序数位置的字符与象征常量 HIGH-VALUE 相关联。 如果由于指定了 ALSO 短语而有多个字符具有最高位置,那么指定的最后一个字符 (或缺省为未显式指定任何字符时的最后一个字符) 将被视为 HIGH-VALUE 字符 (对于过程语句 (例如 DISPLAY) 和在 MOD 语句中作为发送字段)。 (如果将上面给出的 ALSO 短语示例指定为此整理顺序的高阶字符,那么 HIGH-VALUE 字符将为%。)
- 在此整理顺序中具有最低序数位置的字符与象征常量 LOW-VALUE 相关联。 如果多个字符由于 ALSO 短语的指定而具有最低位置,那么指定的第一个字符是 LOW-VALUE 字符。 (如果上面给出的 ALSO 短语示例被指定为整理顺序的低阶字符,那么 LOW-VALUE 字符将为 D。)
当 literal-1 , literal-2 ,则字母名称不得在代码集子句中引用(参见代码集子句)。 literal-3 ,则字母名称不得在代码集子句中引用(参见代码集子句 )。
literal-1, literal-2和 literal-3 必须是字母数字或数字字面值。 所有项都必须具有相同的类别。 不得指定浮点文字,国家文字, DBCS 文字或符号字符象征常量。