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言語で計算処理をするなら「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つのヒント|学習講座