COBOL言語の「ACCESS MODE句」とファイルの呼び出し法とは | 用語辞典
COBOL(コボル)言語の予約語ACCESS MODEで指定するファイルの呼び出し方法とは
COBOL(コボル)言語のACCESS MODE句とは?
ACCESS(英語)は、日本語に訳すると「資料などの利用」という意味があり、MODE(英語)は、日本語に訳すると「方法」という意味がありますので、ACCESS MODE(英語)は、日本語で「(資料などの)利用方法」という意味になります。
COBOL(コボル)言語のACCESS MODE句には、プログラムで取り扱うファイルのアクセス方式(呼び出し方式)を指定する機能があります。
ACCESS MODE句の形式
環境部でファイルの属性を定義する際に、SELECT句のあとにACCESS MODE句を記述することで、プログラムで取り扱うファイルのアクセス方式を明示的に指定することができます。
■書式
SELECT ファイル名 [ACCESS MODE IS アクセス方式]
■構文規則
<ファイル名>
プログラム中でオープン、クローズ、リード、ライトなどを行うときに指定するファイル名を記述します。
<アクセス方式>
使用するファイルのアクセス方式を、「DYNAMIC(動的呼び出し)」、「RANDOM(ランダム呼び出し)」、「SEQUENTIAL(順次呼び出し)」のいずれかで指定します。
■使用例
ACCESS MODE句を使用し、ファイルを順次呼び出しで読み込むプログラム例をご紹介します。
このプログラムは、「SHOHIN.txt」というテキストファイルを読み込み、読み込んだ内容を画面に表示するプログラムです。
■SHOHIN.txtの内容
■実行結果
「SHOHIN.txt」の内容が表示され、プログラムが終了しました。
ACCESS MODE句のCOBOL(コボル)言語における基本事項やルールについて
ACCESS MODE句は、プログラムで取り扱うファイルのアクセス方式を指定する句で、環境部の入出力節に記述します。ACCESS MODE句は省略することができ、省略するとファイルのアクセス方式に順次呼び出しが指定されたとみなされます。
COBOL言語で取り扱うことができるファイルのアクセス方式は、動的呼び出し、ランダム呼び出し、順次呼び出しの3つです。ファイルの編成方式によって、使用できるアクセス方式が異なっています。
■動的呼び出し(ダイナミックアクセス)
COBOL言語における動的呼び出しとは、1つのプログラムから、ある1つのファイルをランダムに呼び出したり、シーケンシャルに呼び出したりする機能です。相対編成ファイル、索引編成ファイルに対して、動的呼び出しを行うことができます。
ACCESS MODE句で動的呼び出しを指定する場合は、アクセス方式に「DYNAMIC」を記述します。
■ランダム呼び出し(ランダムアクセス)
ランダム呼び出しとは、あるレコードにアクセスするときに、レコードが格納されている場所に直接アクセスする方式です。相対編成ファイル、索引編成ファイルに対し、ランダム呼び出しを行うことができます。
ACCESS MODE句でランダム呼び出しを指定する場合は、アクセス方式に「RANDOM」を記述します。
■順次呼び出し(シーケンシャルアクセス)
順次呼び出しとは、レコードを格納された順番にアクセスしていく方式です。順編成ファイル、相対編成ファイル、索引編成ファイルに対し、順次呼び出しを行うことができます。
ACCESS MODE句で順次呼び出しを指定する場合は、アクセス方式に「SEQUENTIAL」を記述します。
COBOL(コボル)言語のACCESS MODE句を使うときの注意点
ACCESS MODE句で指定したアクセス方式に、アクセスするファイル編成形式が対応していない場合、プログラムの実行時に予期しない動作をすることがあります。プログラムでファイルを読み書きする場合は、アクセス方式とファイル編成形式に十分な注意をしてACCESS MODE句を指定してください。
ACCESS MODE句を使ったCOBOL(コボル)プログラムの活用方法
「COBOL(コボル)言語のACCESS MODE句とは?」でご紹介したサンプルプログラムは、SHOHIN.txtというファイルを順次読み出しするだけでしたが、別のファイルに順次書き込みをすることもできます。
ご紹介するプログラム例は、「COBOL(コボル)言語のACCESS MODE句とは?」でご紹介したサンプルプログラムで使用したSHOHIN.txtを読み込み、レコード番号を付加してSHOHIN2.txtというファイルに出力するプログラムです。
- ******************************************************************
- * Author:
- * Date:
- * Purpose:
- * Tectonics: cobc
- ******************************************************************
- IDENTIFICATION DIVISION.
- PROGRAM-ID. ACCESS-MODE_SAMPLE2.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT IN-FILE
- ACCESS MODE IS SEQUENTIAL
- ASSIGN TO "SHOHIN.txt"
- ORGANIZATION IS LINE SEQUENTIAL.
- SELECT OUT-FILE
- ACCESS MODE IS SEQUENTIAL
- ASSIGN TO "SHOHIN2.txt"
- ORGANIZATION IS LINE SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- FD IN-FILE.
- 01 IN-REC.
- 03 HINMEI PIC X(10).
- FD OUT-FILE.
- 01 OUT-REC.
- 03 OUT-NO PIC 9(03).
- 03 OUT-HINMEI PIC X(10).
- WORKING-STORAGE SECTION.
- 01 WORKING-AREA.
- 03 END-FLG PIC X(03).
- *-------------------------------------------
- * 主手続
- *-------------------------------------------
- PROCEDURE DIVISION.
- MAIN-PROCEDURE.
- OPEN INPUT IN-FILE
- OUTPUT OUT-FILE.
- MOVE SPACE TO END-FLG.
- MOVE 0 TO OUT-NO.
- PERFORM UNTIL END-FLG = "END"
- READ IN-FILE
- AT END
- MOVE "END" TO END-FLG
- NOT AT END
- COMPUTE OUT-NO = OUT-NO + 1
- MOVE HINMEI TO OUT-HINMEI
- WRITE OUT-REC
- END-READ
- END-PERFORM.
- CLOSE IN-FILE OUT-FILE.
- STOP RUN.
- END PROGRAM ACCESS-MODE_SAMPLE2.
■SHOHIN.txtの内容
■実行結果:SHOHIN2.txtの内容
ファイルのアクセス方式は、COBOL言語のプログラムを組む上で、どうしても覚えておかなくてはならない基本的な知識の1つです。
ファイルのアクセス方式とACCESS MODE句の関係を、ぜひ理解しておいてください。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
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句」は便利?使用方法を学びましょう|用語辞典