如何删除 COBOL 中的前导零和尾随空格
How to remove leading zeroes & trailing spaces in COBOL
你好我有读取输入文件的需求,每条记录包含一定的记录
01 FILE-DATA.
05 FILE-FIELD-A PIC 9(18).
05 FILLER PIC X(01) VALUE '*'.
05 FILE-FILED-B PIC X(30).
05 FILLER PIC X(01) VALUE '*'.
输入数据:12345*ACBDE12345
当我解开文件记录的字符串时,每个文件都得到 000000012345(前导零)和 'ABCDE12345 '(尾随空格)。
奇怪的是,文件数据以如此可变的长度发送到固定数据结构中,要解决这个问题,我该如何删除前导零和尾随空格。
对于前导零:使用 COBOL 编辑
77 FILE-FIELD-EDITED PIC Z(17)9.
MOVE FILE-FIELD-A TO FILE-FIELD-EDITED
要删除尾随空格(或可能是 FILE-FIELD-EDITED
var 上的前导空格):使用固有的 TRIM
函数:
STRING FUNCTION TRIM (FILE-FIELD-EDITED LEADING)
'*'
FUNCTION TRIM (FILE-FIELD-B TRAILING)
DELIMITED BY SIZE
INTO SOME-OUTPUT-FIELD
END-STRING
这将给出上面显示的输出。
要了解有关编辑和内部函数的更多信息,请参阅您的 COBOL 实现的语言参考(例如,该实现可能没有 LEADING
和 TRAILING
选项)或对于一般 COBOL current COBOL draft standard.
你好我有读取输入文件的需求,每条记录包含一定的记录
01 FILE-DATA.
05 FILE-FIELD-A PIC 9(18).
05 FILLER PIC X(01) VALUE '*'.
05 FILE-FILED-B PIC X(30).
05 FILLER PIC X(01) VALUE '*'.
输入数据:12345*ACBDE12345
当我解开文件记录的字符串时,每个文件都得到 000000012345(前导零)和 'ABCDE12345 '(尾随空格)。
奇怪的是,文件数据以如此可变的长度发送到固定数据结构中,要解决这个问题,我该如何删除前导零和尾随空格。
对于前导零:使用 COBOL 编辑
77 FILE-FIELD-EDITED PIC Z(17)9.
MOVE FILE-FIELD-A TO FILE-FIELD-EDITED
要删除尾随空格(或可能是 FILE-FIELD-EDITED
var 上的前导空格):使用固有的 TRIM
函数:
STRING FUNCTION TRIM (FILE-FIELD-EDITED LEADING)
'*'
FUNCTION TRIM (FILE-FIELD-B TRAILING)
DELIMITED BY SIZE
INTO SOME-OUTPUT-FIELD
END-STRING
这将给出上面显示的输出。
要了解有关编辑和内部函数的更多信息,请参阅您的 COBOL 实现的语言参考(例如,该实现可能没有 LEADING
和 TRAILING
选项)或对于一般 COBOL current COBOL draft standard.