COBOL言語文字列の一部にアクセスする方法を理解しよう!|基礎ガイド

COBOL(コボル)言語の文字列へのアクセス方法とは

基礎-文字列-イメージ

COBOL(コボル)言語の文字列操作とは?

ある商品を例に文字列操作の必要性について考えてみましょう。商品の種類が増えると商品を管理するために商品コードが必要になります。商品コードの指定がないと商品の特徴や名前など、曖昧な商品管理になってしまうからです。身近なところでバーコードがあると思います。日本で流通しているバーコードは主にJANコードという13桁で構成された番号になります。この番号には2桁の国コード、5桁のメーカーコード、5桁の商品コード、1桁のチェックデジットと意味があります。この中からメーカーコードを取り出したい時に今回ご紹介する文字列へのアクセス方法が有効になります。では実際にプログラムを作成してみましょう。

使用例:

基礎-文字列を使用したプログラム1-使用例

使用例は”JAN-CODE”という文字列の頭3桁目から5桁を画面表示するプログラムです。

実行結果:

基礎-文字列を使用したプログラム1-実行結果

COBOL(コボル)言語の文字列操作における基本事項やルールについて

1.文字列の「最左端文字位置」の指定は算術式で1以上である必要があります。

2.文字列のアクセスする「長さ」の指定は算術式で1以上である必要があります。

省略した時はデータ項目の最右端文字位置まで指定されたものとみなされます。

3.文字列指定する際の「(最左端文字位置:長さ)」の間の空白や改行は、自由に設定できます。

4.「(最左端文字位置:長さ)」のことを「部分参照子」と呼びます。

COBOL(コボル)言語の文字列操作における注意点

「部分参照子」の指定は、データ項目長の範囲に収まっている必要があります。最左端文字位置、長さがデータ項目長の範囲に収まっていない場合に実行時にエラーになるため注意が必要です。特にサブプログラム内やPERFORM文内で使用する際はデータ項目長の範囲に収まるよう注意して使用するようにしましょう。

値が不確定な場合は、部分参照子を指定する前にデータ項目長の範囲に値が収まっているかチェックする処理を追加するようにしましょう。そうすることで実行時のエラーを回避することができます。回避する際にデータ項目長に収まる値にするか、処理を中断してメッセージを出力させるか対応するようにしましょう。

文字列操作を考えたCOBOL(コボル)プログラムの活用法

COBOL言語の文字列の一部にアクセスする方法は、先ほどご紹介した通り、基本的なプログラミングであり、多くのCOBOLプログラムで使用されています。文字列を抜き出す範囲は定数で指定するだけでなく、変数を指定することもできます。また定数と変数を組み合わせて指定することもできます。活用法では、実際に定数以外の文字列操作の例を用意しましたので、実際にご自身で記述することでその動きを確認してみましょう。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. MOJI_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. 01 WK-MOJI.
  7.  05 JAN-CODE PIC X(13) VALUE "4912345001238".
  8. 01 WK-COUNT PIC 9.
  9. PROCEDURE DIVISION.
  10.  PERFORM VARYING WK-COUNT FROM 1 BY 1 UNTIL WK-COUNT > 3
  11.   DISPLAY JAN-CODE(1:WK-COUNT)
  12.  END-PERFORM.
  13.  
  14.  PERFORM VARYING WK-COUNT FROM 1 BY 1 UNTIL WK-COUNT > 3
  15.   DISPLAY JAN-CODE(2 + WK-COUNT:WK-COUNT + 5)
  16.  END-PERFORM.
  17. STOP RUN.

使用例は使用例でご紹介した”JAN-CODE”という文字列から文字を抜き出す処理になります。

最初の処理は文字列の頭1桁目から順に1桁から3桁までの文字列を抜き出して画面に表示しています。

次の処理は文字列の頭2桁に1桁から3桁をプラスした値を開始位置として、6桁から8桁までの文字列を抜き出して画面に表示するプログラムになります。

実行結果:

基礎-文字列を使用したプログラム2-実行結果

今回はCOBOL言語の文字列の一部にアクセスする方法についてご紹介しました。文字列操作はCOBOL言語では基本的なプログラミングになりますので、実際に活用できるようにご自身で記述して理解を深めましょう。他のプログラミング言語を学ばれている方は、その言語と比較しながら違いについても理解してみましょう。

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

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

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

COBOL入門のカテゴリー

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

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