COBOL言語の「ACCESS MODE句」とファイルの呼び出し法とは | 用語辞典

COBOL(コボル)言語の予約語ACCESS MODEで指定するファイルの呼び出し方法とは

辞典・辞書-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」というテキストファイルを読み込み、読み込んだ内容を画面に表示するプログラムです。

辞典・辞書-ACCESS-MODE-使用例

■SHOHIN.txtの内容

辞典・辞書-ACCESS-MODE-実行結果

■実行結果

辞典・辞書-ACCESS-MODE-行順編成ファイル

「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というファイルに出力するプログラムです。

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. ACCESS-MODE_SAMPLE2.
  9.  
  10. ENVIRONMENT DIVISION.
  11. INPUT-OUTPUT SECTION.
  12. FILE-CONTROL.
  13. SELECT IN-FILE
  14. ACCESS MODE IS SEQUENTIAL
  15. ASSIGN TO "SHOHIN.txt"
  16. ORGANIZATION IS LINE SEQUENTIAL.
  17. SELECT OUT-FILE
  18. ACCESS MODE IS SEQUENTIAL
  19. ASSIGN TO "SHOHIN2.txt"
  20. ORGANIZATION IS LINE SEQUENTIAL.
  21.  
  22. DATA DIVISION.
  23. FILE SECTION.
  24. FD IN-FILE.
  25. 01 IN-REC.
  26. 03 HINMEI PIC X(10).
  27. FD OUT-FILE.
  28. 01 OUT-REC.
  29. 03 OUT-NO PIC 9(03).
  30. 03 OUT-HINMEI PIC X(10).
  31.  
  32. WORKING-STORAGE SECTION.
  33. 01 WORKING-AREA.
  34. 03 END-FLG PIC X(03).
  35.  
  36. *-------------------------------------------
  37. * 主手続
  38. *-------------------------------------------
  39. PROCEDURE DIVISION.
  40.  
  41. MAIN-PROCEDURE.
  42. OPEN INPUT IN-FILE
  43. OUTPUT OUT-FILE.
  44.  
  45. MOVE SPACE TO END-FLG.
  46. MOVE 0 TO OUT-NO.
  47.  
  48. PERFORM UNTIL END-FLG = "END"
  49. READ IN-FILE
  50. AT END
  51. MOVE "END" TO END-FLG
  52. NOT AT END
  53. COMPUTE OUT-NO = OUT-NO + 1
  54. MOVE HINMEI TO OUT-HINMEI
  55. WRITE OUT-REC
  56. END-READ
  57. END-PERFORM.
  58.  
  59. CLOSE IN-FILE OUT-FILE.
  60. STOP RUN.
  61. END PROGRAM ACCESS-MODE_SAMPLE2.

■SHOHIN.txtの内容

辞典・辞書-ACCESS-MODE-順編成ファイルA1

■実行結果:SHOHIN2.txtの内容

辞典・辞書-ACCESS-MODE-順編成ファイルA2

ファイルのアクセス方式は、COBOL言語のプログラムを組む上で、どうしても覚えておかなくてはならない基本的な知識の1つです。

ファイルのアクセス方式とACCESS MODE句の関係を、ぜひ理解しておいてください。

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

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

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

COBOL入門のカテゴリー

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