文字数カウントの仕方を解説する(COBOL解説)関数を使う

文字数カウントアイキャッチ

COBOLではデータの大きさが最初から決まっているため、そのデータの大きさが文字数の大きさとも言えるが、実際にやりたいことはそのデータに格納されている文字の長さではないでしょうか。
文字の大きさを測るには「FUNCTION TRIM」を使用して、空白スペースを削除して文字数をカウントすることで、実際の文字の長さを測ることができるようになります。今回は、「LENGTH」と「STORED-CHAR-LENGTH」を使用した2つの方法を説明する。

LENGTHを使用する

function lengthの例

「FUNCTION LENGTH」を使用することで、さまざまな文字数を数えることができる。

ただ、「FUNCTION LENGTH」を使用しただけでは、変数の大きさを数えることになる。
つまり、3桁の数値が変数に入っていても、その変数が5桁の大きさであった場合には、空白のスペースも数え5となってしまう。

実際には空白の部分は数えず、数値や文字がある部分のみを数えたい。そのため、「FUNCTION TRIM」を使用し、空白部分を削除してカウントを行うようにする。

DATA DIVISION.
    WORKING-STORAGE SECTION.

        01 INT PIC X(5).

PROCEDURE DIVISION.
    MAIN SECTION.
    
        MOVE '123' TO INT.

        DISPLAY FUNCTION LENGTH(INT).    *> ① 5

        DISPLAY FUNCTION LENGTH(FUNCTION TRIM(INT)).    *> ② 3

以上のプログラムを実際に実行すると、
①の場合、「5」が出力されることになる。これは、INT変数の大きさを数えているからだ。

②の場合、「3」が出力されることになる。これは、「FUNCTION TRIM」でINT変数の空白部分を削除し、文字が存在する部分のみを数えているためだ。

つまり、「FUNCTION TRIM」を使用し、「FUNCTION LENGTH(FUNCTION TRIM(変数)」とすることで、変数の空白スペースを数えることなく、文字の数をカウントすることが可能になる。

FUNCTION TRIM についてはこちら

STORED-CHAR-LENGTHを使用する

STORED-CHAR-LENGTHとは

続いての文字数カウントの方法は「STORED-CHAR-LENGTH」を使用する方法である。

「STORED-CHAR-LENGTH」を使用することで、「FUNCTON TRIM」を使用することなく文字数を正確に数えることができる。

使用方法は以下の通り

DATA DIVISION.
    WORKING-STORAGE SECTION.

        01 INT PIC X(5).

PROCEDURE DIVISION.
    MAIN SECTION.
    
        MOVE '123' TO INT.

        DISPLAY FUNCTION STORED-CHAR-LENGTH(INT).

「FUNCTION SORTED-CHAR-LENGTH」とするだけで、「3」が出力されることになる。

以上が文字数をカウントする方法です。様々な場面で使用してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA