コボルの INSPECT を使用して空白を除去する方法

COBOLのINSPECT文は文字列から空白を取り除くことができます。次の例を参照してください。
IDENTIFICATION DIVISION.
PROGRAM-ID. REMOVE-SPACES.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INPUT-STRING PIC X(20) VALUE ‘  HELLO WORLD  ‘.
01 OUTPUT-STRING PIC X(20).
PROCEDURE DIVISION.
MAIN-PROGRAM.
DISPLAY ‘Before removing spaces: ‘ INPUT-STRING.

INSPECT INPUT-STRING TALLYING WS-COUNTER FOR LEADING SPACES
BEFORE INITIAL ‘H’.
INSPECT INPUT-STRING TALLYING WS-COUNTER FOR TRAILING SPACES
AFTER INITIAL ‘D’.
MOVE INPUT-STRING(WS-COUNTER:LENGTH OF INPUT-STRING-WS-COUNTER)
TO OUTPUT-STRING.
DISPLAY ‘After removing spaces: ‘ OUTPUT-STRING.

STOP RUN.
上記の例では、INSPECT文を使用して文字列の先頭と末尾の空白の数を数え、MOVE文を使用して空白以外の部分を別の変数にコピーしています。この例では、入力文字列の先頭位置は、最初の空白でない文字からの開始と想定し、入力文字列の長さは既知のものとしています。入力文字列の先頭位置が最初の空白でない文字からの開始ではない場合や、入力文字列の長さが固定でない場合は、コードを適宜修正する必要があります。

bannerAds