有一个例子说明如何在IBM 企业COBOL语言参考中使用SHIFT-OUT和SHIFT-IN:
DATA DIVISION.
WORKING-STORAGE.
01 DBCSGRP.
05 SO PIC X.
05 DBCSITEM PIC G(3) USAGE DISPLAY-1.
05 SI PIC X.
.
.
.
PROCEDURE DIVISION.
MOVE SHIFT-OUT TO SO
MOVE G"<D1D2D3>" TO DBCSITEM
MOVE SHIFT-IN TO SI
DISPLAY DBCSGRP
<
Represents the shift-out control character (X'0E')
>
Represents the shift-in control character (X'0F')
我不明白为什么要插入&lt;和&gt;在我们已经在SO / SI中进行SHIFT-OUT / SHIFT-IN时,进入G-literal内容。
答案 0 :(得分:0)
它是G-literal的格式(或带有编译器选项NSYMBOL(DBCS)的N-literal。这是规则。
shift-out / -in不是文字本身的部分,因此group-item需要包含自己的shift-out / -in,以便DBCS字符表示任何内容(in引用组项的情况。)
需要前导和尾随移位字节,因为每个DBCS字符由任何一对字节组成,其中任何值都来自X&#39; 00&#39;通过X&#39; FF&#39;因此可以(并且确实)包含移位字符的十六进制值。
由于DBCS文字可以在可以使用DBCS项的相同位置使用,例如NATIONAL-OF函数,因此DBCS文字必须遵守正确解释其值的规则。
在编译器中编写代码时,他们是否已将shift-out / -in隐式?嗯,他们没有。故事结束。