如何测试一个项目是否左对齐?
How to test if an item is left justified?
我不知道如何测试读入的项目是否左对齐。例如,如果我有一个 WORD-IN PIC X(8)
,我如何创建一个测试来测试是否有任何空白或 "b's" 读入。
Word read in = _____CAT
WORD-IN then equals bbbbbCAT
我可以测试前导 b 吗?这样做是为了数据验证。如果有的话,前导 b 的数量是随机的,但只有一个会使它不左对齐。
05 word-in.
07 word-in-x pic x(01) occurs 8.
if word-in-x(1) is equal to space ...
一些变体:
01 word-in.
05 FILLER PIC X.
88 word-in-data-not-left-just VALUE SPACE.
05 FILLER PIC X(7).
IF word-in-data-not-left-just
....
END-IF
定义数据以隔离第一个字节,并在其上使用 88,以便 reader 知道它的含义。
01 word-in.
05 FILLER pic x(01) occurs 8.
88 word-in-data-not-left-just VALUE SPACE.
if word-in-data-not-left-just ( 1 )
....
END-IF
与 Magoo 一样,88 也可以完全按照他们的解决方案进行,但无需为数据命名,只需为 88 命名即可。
01 word-in PIC X(8).
IF word-in ( 1 : 1 ) EQUAL TO SPACE
....
END-IF
参考修改。遇到的时候打个电话就到办公室了 "what does it mean when the first byte of word-in is space?" 肯定有人知道。如果没有,你会得到额外的乐趣,因为在你知道你是否需要知道之前必须先弄清楚意图。
从以上所有生成的代码将(IBM Enterprise COBOL)/应该是相同的,所以选择哪一个是为了人类理解,编译器不关心。它按照它说的做,即使需要更多的时间来解决它是什么,这取决于解决方案。
您可以使用 INSPECT 语句。对于前导空格,请使用:
01 WS-CNT PIC S9(5) COMP-3.
INSPECT WORD-IN TALLYING WS-CNT FOR LEADING SPACES
要计算尾随空格,您可以:
Inspect function reverse(word-in) tallying ws-cnt for leading spaces
变量ws-cnt会有空格数。
我不知道如何测试读入的项目是否左对齐。例如,如果我有一个 WORD-IN PIC X(8)
,我如何创建一个测试来测试是否有任何空白或 "b's" 读入。
Word read in = _____CAT
WORD-IN then equals bbbbbCAT
我可以测试前导 b 吗?这样做是为了数据验证。如果有的话,前导 b 的数量是随机的,但只有一个会使它不左对齐。
05 word-in.
07 word-in-x pic x(01) occurs 8.
if word-in-x(1) is equal to space ...
一些变体:
01 word-in.
05 FILLER PIC X.
88 word-in-data-not-left-just VALUE SPACE.
05 FILLER PIC X(7).
IF word-in-data-not-left-just
....
END-IF
定义数据以隔离第一个字节,并在其上使用 88,以便 reader 知道它的含义。
01 word-in.
05 FILLER pic x(01) occurs 8.
88 word-in-data-not-left-just VALUE SPACE.
if word-in-data-not-left-just ( 1 )
....
END-IF
与 Magoo 一样,88 也可以完全按照他们的解决方案进行,但无需为数据命名,只需为 88 命名即可。
01 word-in PIC X(8).
IF word-in ( 1 : 1 ) EQUAL TO SPACE
....
END-IF
参考修改。遇到的时候打个电话就到办公室了 "what does it mean when the first byte of word-in is space?" 肯定有人知道。如果没有,你会得到额外的乐趣,因为在你知道你是否需要知道之前必须先弄清楚意图。
从以上所有生成的代码将(IBM Enterprise COBOL)/应该是相同的,所以选择哪一个是为了人类理解,编译器不关心。它按照它说的做,即使需要更多的时间来解决它是什么,这取决于解决方案。
您可以使用 INSPECT 语句。对于前导空格,请使用:
01 WS-CNT PIC S9(5) COMP-3.
INSPECT WORD-IN TALLYING WS-CNT FOR LEADING SPACES
要计算尾随空格,您可以:
Inspect function reverse(word-in) tallying ws-cnt for leading spaces
变量ws-cnt会有空格数。