COBOL言語の関数「LENGTH」について理解しよう! | 用語辞典

COBOL(コボル)言語の予約語LENGTHを使った文字列の長さの取得とは

辞典・辞書-LENGTH-イメージ

COBOL(コボル)言語のLENGTH関数とは?

COBOL(コボル)の組込み関数であるLENGTH関数は、指定した文字列の長さを取得したい場合に使用します。文字列操作を行う関数としてはよく使われるもので、COBOLに限らずJAVAを始め様々な言語で標準関数として用意されています。そのため馴染みのある方も多いのではないでしょうか。では、早速COBOLでの使い方について見ていきましょう。

書き方(LENGTH関数):

FUNCTION LENGTH(引数)

  • 関数の型:整数型
  • 引数:文字列の長さを取得したい文字(変数、定数)を指定
  • 戻り値:文字列の長さを表す整数値(集団項目である場合は項目の長さの合計値)

使用例:

辞典・辞書-LENGTH-使用例

実行結果:

辞典・辞書-LENGTH-実行結果

LENGTH関数のCOBOL(コボル)言語における基本事項やルールについて

  1. 「FUNCTION LENGTH」の間の空白や改行は、自由に設定できます。
  2. 組込み関数の前には予約語「FUNCTION」を指定する必要があります。
  3. 引数は複数文字を指定する事はできません。

COBOL(コボル)言語のLENGTH関数を扱う上での注意点

COBOL言語のLENGTH関数は、指定した文字列の長さを取得できますが、項目の内容に関わらず、PICTURE句で指定した値が戻り値になりますので、注意が必要です。

例えば、以下のようにデータ項目が定義されていた場合、LENGTH関数の戻り値は①②どちらも「3」ではなく、②の戻り値は「5」となります。

①EIJI PIC X(3) VALUE "ABC".
②EIJI PIC X(5) VALUE "ABC".

LENGTH関数を使ったCOBOL(コボル)プログラムの活用法

LENGTH関数は、英字、数字、集団項目など文字列の長さを取得でき、その情報を元にした加工編集をする場合に非常に便利です。ここでは、活用法として英字、数字、集団項目それぞれの文字列の長さの取得方法と、取得した情報から必要な形式に加工編集して画面表示する簡単なプログラムを紹介します。

サンプルプログラム(LENGTH_SAMPLE01):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. LENGTH_SAMPLE01.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 SAMPLE-DATA.
  8. 03 EIJI PIC X(3) VALUE "ABC".
  9. 03 SUJI PIC X(5) VALUE "12345".
  10. 03 KOUMOKU.
  11. 05 KOUMOKU1 PIC X(3) VALUE "ABC".
  12. 05 KOUMOKU2 PIC X(5) VALUE "12345".
  13.  
  14. PROCEDURE DIVISION.
  15. *>----------------------------------------------------
  16. *> 文字の長さを求める
  17. *>----------------------------------------------------
  18.  
  19. DISPLAY '文字列:' EIJI.
  20. DISPLAY '長さ :' FUNCTION LENGTH(EIJI).
  21.  
  22. DISPLAY '文字列:' SUJI.
  23. DISPLAY '長さ :' FUNCTION LENGTH(SUJI).
  24.  
  25. DISPLAY '文字列:' KOUMOKU.
  26. DISPLAY '長さ :' FUNCTION LENGTH(KOUMOKU).
  27.  
  28. STOP RUN.

実行結果(LENGTH_SAMPLE01):

辞典・辞書-LENGTH-実行結果

サンプルプログラム(LENGTH_SAMPLE02):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. LENGTH_SAMPLE02.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 SAMPLE-DATA.
  8. 03 KEY-INFO PIC X(2).
  9. 03 KOUMOKU PIC X(5) VALUE "AB123".
  10.  
  11. PROCEDURE DIVISION.
  12. *>----------------------------------------------------
  13. *> 文字の長さを求め、加工編集する
  14. *>----------------------------------------------------
  15.  
  16. DISPLAY 'キー情報:' KOUMOKU(1:FUNCTION LENGTH(KEY-INFO)).
  17. DISPLAY '値:' KOUMOKU(FUNCTION LENGTH(KEY-INFO) + 1:3).
  18.  
  19. STOP RUN.

実行結果(LENGTH_SAMPLE02):

辞典・辞書-LENGTH-実行結果

今回ご紹介したLENGTHのサンプルプログラムは、文字列の長さの取得方法と取得した文字を加工編集して画面表示する方法をご紹介しました。文字列操作は普段作成するプログラムでもよく使われますので、このように用意されている関数はしっかり活用できるようにしていきましょう。

この記事を読んだ人は、こちらの記事も読んでいます

あなたのCOBOL技術を活かしませんか?

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

|  基礎  |  応用  |  勉強  |  試験 |  辞書  |

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門