COBOLのファイル入出力テスト完全ガイド!初心者でもわかるデータ確認の基本
生徒
「COBOLでファイルの読み込みや書き込みをしたいんですが、うまくいっているか確認する方法ってありますか?」
先生
「はい、COBOLでファイルを扱うときは、入出力のテストとデータの確認がとても重要です。テストしながらファイルの中身をチェックする方法を覚えると、プログラムのミスをすぐに見つけることができますよ。」
生徒
「初心者でも分かるように、簡単な例で教えてください!」
先生
「もちろんです!それではファイル入出力の基本と、動作確認のポイントを一緒に見ていきましょう。」
1. ファイル入出力(にゅうしゅつりょく)とは?
ファイル入出力とは、プログラムとファイルの間でデータを「読み込んだり」「書き込んだり」することを指します。
「入力」はファイルからデータを読むことで、「出力」はファイルへデータを書き込むことを意味します。
COBOLでは、テキストファイルを使って、お客様の情報や売上データなどをやり取りします。例えば、「名簿.txt」から名前を読み込んで処理したり、「売上.csv」に結果を書き出すといった使い方です。
初心者の方にもわかりやすく例えるなら、「ファイル」はデータをしまっておく箱のようなもので、「入出力」はその箱に物を入れたり取り出したりする作業です。
2. COBOLでファイルを使うにはどうする?
COBOLでファイルを使うには、ENVIRONMENT DIVISIONとINPUT-OUTPUT SECTIONでファイルの情報を定義し、OPENやREAD、WRITEなどの命令で操作します。
実際のサンプルで、ファイルからデータを読み込んで表示する処理を見てみましょう。
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-READ.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO "input.txt"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-RECORD PIC X(30).
WORKING-STORAGE SECTION.
01 EOF-FLAG PIC X VALUE "N".
PROCEDURE DIVISION.
OPEN INPUT IN-FILE
PERFORM UNTIL EOF-FLAG = "Y"
READ IN-FILE
AT END
MOVE "Y" TO EOF-FLAG
NOT AT END
DISPLAY "読み込んだデータ:" IN-RECORD
END-READ
END-PERFORM
CLOSE IN-FILE
STOP RUN.
この例では、「input.txt」から1行ずつデータを読み込み、その内容を表示しています。
3. 実行結果の確認方法
ファイルを読み込む処理が正しく動いているか確認するために、DISPLAY文を使って画面に表示させるのが基本です。
例えば、「読み込んだデータ:田中一郎」と表示されれば、「田中一郎」という行をちゃんと読み込んだことがわかります。
実際の表示例:
読み込んだデータ:田中一郎
読み込んだデータ:佐藤花子
読み込んだデータ:山田太郎
このように、1行ずつしっかり読み取れているかが目で見て確認できます。
4. ファイルへ書き込むテストもしてみよう
次は、ファイルにデータを書き込む方法とテストのコツを紹介します。これは、出力ファイルを作って中身を見ながら確認するのがポイントです。
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-WRITE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OUT-FILE ASSIGN TO "output.txt"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD OUT-FILE.
01 OUT-RECORD PIC X(30).
PROCEDURE DIVISION.
OPEN OUTPUT OUT-FILE
MOVE "田中一郎" TO OUT-RECORD
WRITE OUT-RECORD
MOVE "佐藤花子" TO OUT-RECORD
WRITE OUT-RECORD
CLOSE OUT-FILE
DISPLAY "ファイルへの書き込みが完了しました。"
STOP RUN.
このプログラムを実行すると、「output.txt」というファイルに2行の名前が書き込まれます。確認のコツは、エディタ(メモ帳など)で実際のファイルを開いて中身を見ることです。
5. テスト用データの作り方と注意点
ファイル入出力をテストするためには、テスト用のデータを自分で作っておくと便利です。
たとえば、下記のような「input.txt」をメモ帳などで用意します。
田中一郎
佐藤花子
山田太郎
注意点としては、文字数を揃えることです。COBOLは決まった桁数でデータを扱うことが多いため、ズレていると正しく読み取れないことがあります。
6. トラブル時の確認ポイント
ファイルを開けない、読み取れないといった問題が発生したときは、以下の点をチェックしましょう。
- ファイル名が正しいか(大文字・小文字も含めて)
- ファイルが同じフォルダにあるか
- ファイルの書式が間違っていないか
READやWRITEのタイミングでOPENしているか
また、DISPLAY文で処理の開始・終了を表示することで、プログラムがどこまで動いているかを目で確認できます。
7. DISPLAY文で処理の流れを「見える化」しよう
DISPLAY文は、プログラムの中で何が起きているかを表示するための命令です。入出力の前後や、読み込んだデータの直後などに使えば、処理の流れを見える化できます。
例えば:
DISPLAY "=== ファイル読み込み開始 ==="
DISPLAY "読み込んだデータ:" IN-RECORD
DISPLAY "=== ファイル読み込み終了 ==="
これにより、「どのタイミングで読み込みが始まり、どこで終わったか」がよく分かります。初心者の方にこそおすすめの確認方法です。
まとめ
COBOLのファイル入出力は、業務システムにおいて最も利用される処理のひとつであり、正しく読み書きできているかを確認するためのテストは非常に重要です。今回の記事では、ファイル入出力の基本となる入力ファイル(READ)、出力ファイル(WRITE)、そして動作確認に欠かせないDISPLAY文の使い方を中心に、初心者でも理解しやすい形で全体像を整理しました。テストによってファイル処理が期待どおりに動いているかを確認することは、プログラム品質を高めるうえで不可欠です。動作確認を丁寧に行うことで、実務でも安心して運用できる安定したCOBOLプログラムを作ることができます。 また、ファイルの構造はCOBOLにとってとても重要な要素であり、行の長さ(レコード長)やフォーマットが違うだけで読み込みに失敗することもあるため、テストデータを準備する段階から慎重に扱う必要があります。ファイルの内容を表示しながらひとつずつ確認する「逐次検証」は、初心者にとって特に大きな助けとなるでしょう。さらに、ファイルのオープン、読み込み、書き込み、クローズといった流れは業務ロジックを構築するうえで基本的な骨組みとなり、この流れをきちんと理解できれば、より複雑な処理にも対応できるようになります。
基本を押さえるサンプルプログラム
読み込みと書き込みを連続して確認するテストプログラムの例を示します。処理の流れがわかるようにDISPLAYを多用しています。
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-TEST-DEMO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO "input.txt"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO "output.txt"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-REC PIC X(40).
FD OUT-FILE.
01 OUT-REC PIC X(40).
WORKING-STORAGE SECTION.
01 EOF-FLAG PIC X VALUE "N".
PROCEDURE DIVISION.
DISPLAY "=== 入力ファイル読み込み開始 ===".
OPEN INPUT IN-FILE
PERFORM UNTIL EOF-FLAG = "Y"
READ IN-FILE
AT END
MOVE "Y" TO EOF-FLAG
NOT AT END
DISPLAY "読み込み:" IN-REC
END-READ
END-PERFORM
CLOSE IN-FILE
DISPLAY "=== 入力ファイル読み込み終了 ===".
DISPLAY "=== 出力ファイル書き込み開始 ===".
OPEN OUTPUT OUT-FILE
MOVE "テスト書き込み:田中一郎" TO OUT-REC
WRITE OUT-REC
MOVE "テスト書き込み:佐藤花子" TO OUT-REC
WRITE OUT-REC
CLOSE OUT-FILE
DISPLAY "=== 出力ファイル書き込み終了 ===".
STOP RUN.
このプログラムは、ファイル入出力の理解を深めるための非常に良い実践例です。ファイルをオープンし、EOF(終端)を確認しながら読み込む処理、そして書き込み後に出力ファイルを開いて中身を確認する流れは、業務プログラムの基本パターンにも通じます。テスト時には、DISPLAY文を使って処理の流れを把握し、どこでデータが読まれ、どのタイミングで書き込まれているかを明確にすることが大切です。 また、入力ファイルの構造と内容に気を付けることは、COBOLのファイル処理において最も重要なポイントのひとつです。レコード長が合わない、ルールの異なるファイルを読み込んだ場合、処理が止まったり意図しない動作になることがあります。そのため、テストファイルを準備する際には、事前にデータの長さ・形式・文字コードなどをチェックしておく必要があります。 書き込みテストでは、出力されたファイルをエディタで開き、期待どおりの行が作られているか確認する習慣を付けると良いでしょう。業務システムでは大量データを扱うため、1行ずつ目視確認できない場合もありますが、まずは小さな単位で正しい書式を作れることが重要です。
生徒
「ファイルの読み書きって難しそうだと思っていたけど、流れがはっきりしているので理解しやすかったです!」
先生
「そうでしょう。COBOLはファイル処理が得意な言語ですから、構造を正しく理解すればとても扱いやすくなりますよ。」
生徒
「DISPLAYで処理を確認できるのが便利ですね。どこまで動いているかがよく分かりました。」
先生
「その通り。ファイル入出力テストでは、画面に表示しながら確認することがとても大切です。作業効率も上がりますよ。」
生徒
「これなら自分でもテスト用ファイルを作っていろいろ試せそうです!書き込みの結果を見るのも楽しみです。」
先生
「ぜひ挑戦してみてください。ファイル処理をしっかり理解すれば、COBOLでできることが一気に広がりますよ。」