COBOL言語の「RECORD句」ってなに?注意点など説明します | 用語辞典
COBOL(コボル)言語の予約語RECORD句を使った命令文の書き方とは
COBOL(コボル)言語のRECORD句とは?
COBOL(コボル)には、様々な予約語が用意されていますが、レコード長が可変のファイルを扱う場合は、レコードのサイズ、または可変長レコードのサイズを指定するためにRECORD句を使用します。
本記事では、COBOLにおけるRECORD句について基本的な使い方やルール、注意点などをご紹介します。
書き方:
FD [ファイル名]
RECORD IS VARYING IN SIZE
FROM [最小長] TO [最大長] CHARACTERS
DEPENDING ON [レコード長項目].
レコード記述項.
RECORD句は、FD句(ファイル記述項)の中で指定します。
以下にRECORD句を使用して、可変長レコードのファイルを作成する簡単なプログラムを紹介します。
実行結果:
プログラムを実行して作成されたファイル"test.txt"を確認すると、実行結果のように出力されています。
使用したサンプルでは、RECORD句で最小長5、最大長10の可変長のレコードを指定しています。
DEPENDINGで指定したレコード長項目は、ファイルにレコードを書き込む前にサイズ6で指定しています。
なお、ファイルに書き込むレコードのデータ項目は、RECORD句で指定した最小長、最大長の範囲内のサイズを指定しなければいけません。
RECORD句のCOBOL(コボル)言語における基本事項やルールについて
- RECORD、VARYINGなどの空白や改行有無は自由に設定できます。
- 最小長、最大長は1以上の最少レコード長を指定し、最少長より大きい値の最大長を数値で指定する必要があります。
- レコード長項目は、ファイルの読み込みや書き込みを行うためのレコードのデータ項目を指定します。
- レコード長項目は、WORKING-STORAGE SECTIONに数値形式で定義する必要があります。
- FD句の中で指定する、ファイルに書き込むためのレコード記述項目は、RECORD句で指定した最小長、最大長の範囲内で指定する必要があります。
- RECORD句の「FROM [最小長] TO [最大長] CHARACTERS」は、省略可能です。
- FD句でRECORD句を指定しない場合は、レコード記述項目のサイズによって、書き込むレコードのサイズが決まります。
- ファイルに書き込むレコードのサイズは、DEPENDINGで指定したデータ長項目に設定します。
COBOL(コボル)言語のRECORD句を扱う上での注意点
- 最大長は、最小長以下の値を指定することはできません。
- レコード記述項目のサイズは、RECORD句の最小長、最大長の範囲で設定しなければいけません。
例えば以下のように最小長5、最大長10で設定した場合は、その範囲外のレコード記述項目を指定すると、コンパイルエラーが発生します。
RECORD VARYING IN SIZE
FROM 5 TO 10 CHARACTERS
DEPENDING ON TEST-NUM.
01 OUT-FILE-REC PIC X(11).
レコードのサイズが大きい旨のコンパイルエラーが発生します。
RECORD句を使ったCOBOL(コボル)プログラムの活用法
RECORD句を使用すれば、1つのレコード記述項目で何回も自由に書き込むサイズを指定して、可変長のレコードをファイルに書き込むことが可能です。
以下にレコード長項目を複数回指定して、レコードをファイルに書き込む簡単なサンプルを紹介します。
- IDENTIFICATION DIVISION.
- PROGRAM-ID. RECORD_SAMPLE02.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- *> ファイル名を設定する
- SELECT TEST-FILE ASSIGN TO 'test.txt'
- ORGANIZATION IS LINE SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- *> 書きこむファイルを指定する
- FD TEST-FILE
- *> 可変長ファイルのレコード長を指定する
- RECORD VARYING IN SIZE
- FROM 5 TO 10 CHARACTERS
- DEPENDING ON TEST-NUM.
- 01 OUT-FILE-REC PIC X(10).
- WORKING-STORAGE SECTION.
- 01 TEST-RECORD-AREA.
- 03 TEST-NUM PIC 9(1).
- 03 TEST-STR PIC X(10).
- PROCEDURE DIVISION.
- MAIN SECTION.
- *> ファイルをオープンする
- OPEN OUTPUT TEST-FILE.
- *> 書き込む文字列を指定
- MOVE "ABCDE01234" TO TEST-STR.
- *> 9byte
- COMPUTE TEST-NUM = 9.
- MOVE TEST-STR TO OUT-FILE-REC.
- WRITE OUT-FILE-REC.
- *> 8byte
- COMPUTE TEST-NUM = 8.
- WRITE OUT-FILE-REC.
- *> 7byte
- COMPUTE TEST-NUM = 7.
- WRITE OUT-FILE-REC.
- *> 6byte
- COMPUTE TEST-NUM = 6.
- WRITE OUT-FILE-REC.
- *> 5byte
- COMPUTE TEST-NUM = 5.
- WRITE OUT-FILE-REC.
- *> 4byte
- COMPUTE TEST-NUM = 4.
- WRITE OUT-FILE-REC.
- *> 3byte
- COMPUTE TEST-NUM = 3.
- WRITE OUT-FILE-REC.
- *> 2byte
- COMPUTE TEST-NUM = 2.
- WRITE OUT-FILE-REC.
- *> 1byte
- COMPUTE TEST-NUM = 1.
- WRITE OUT-FILE-REC.
- *> ファイルクローズ
- CLOSE TEST-FILE.
- STOP RUN.
実行結果:
サンプルでは、DEPENDING で指定したレコード長項目TEST-NUMの値を複数指定し、ファイルにレコードを書き込んでいます。
実行結果のとおり、指定したレコード長でレコードが書き込まれているのがわかります。
このようにRECORD句を指定すれば、書き込むレコードのサイズを1つのレコード記述項目で何度も変更することが可能です。
また、サンプルで示したようにDEPENDINGで指定したレコード長項目は、レコード記述項目のように最小値から最大値の範囲外のサイズ1~4を指定することも可能です。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典