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ダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語で計算処理をするなら「COMPUTE文」|入門用語辞典
- COBOL言語の「ACCEPT文」の使い方を分かり易く解説|入門用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のCOPY文活用法|応用ガイド
- 一歩先を行くCOBOL言語の表操作!逐次検索と二分検索|応用ガイド
- COBOL言語の加算処理の基本を伝授! 命令文「ADD」とは?|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のファイル併合処理|応用ガイド
- COBOL言語でファイルの開閉命令はOPEN文とCLOSE文!|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のデータ共有|応用ガイド
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- COBOL言語の歴史とこれまでの進化を知る!廃止・追加機能|基礎ガイド
- COBOL言語のオブジェクト指向について理解しよう!|基礎ガイド
- COBOL言語のディスプレイ出力とコンソール入力について|基礎ガイド
- COBOL言語が得意とする計算処理を体験してみよう!|基礎ガイド
- 一歩先を行くCOBOL言語のユーザ定義関数について|応用ガイド
- 初心者から中級者でも安心!理解できるCOBOL言語の勉強法|学習講座
- 初心者必見!COBOL言語を効率よくマスターする勉強法とは|学習講座
- COBOL初心者が犯しやすいミスとその対策について|学習講座
- COBOL初心者がやってはいけない勉強方法とは?|学習講座
- 一歩先へ行くCOBOLプログラマの知っておくべき4つのヒント|学習講座