こんにちは私はtutorialpointsからcobolを学習しています。私はOpenCobolIDEでそれらをテストしました。それから、私はファイル処理の章を見つけました。そこでは、プログラムに多くのエラーがありました。私は何もエラーを表示しないが、何もしないまで、プログラムを書き直すことができた。Cobol:テキストファイルのエントリポイントを見つけることができません
ここに私のコードです:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUDENT ASSIGN TO
'C:\Cobol\FIle Handling\input.txt'
ORGANIZATION IS INDEXED
ACCESS IS RANDOM
RECORD KEY IS STUDENT-ID
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD STUDENT.
01 STUDENT-FILE.
05 STUDENT-ID PIC 9(5).
05 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT-FILE.
05 WS-STUDENT-ID PIC 9(5).
05 WS-NAME PIC A(25).
01 FS PIC 9(02).
PROCEDURE DIVISION.
OPEN I-O STUDENT.
MOVE 20005 TO STUDENT-ID.
READ STUDENT RECORD INTO WS-STUDENT-FILE
KEY IS STUDENT-ID
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY WS-STUDENT-FILE
END-READ.
CLOSE STUDENT.
STOP RUN.
これはテキストファイルです:
20003 Mohtashim M.
20004 Nishant Malik
20005 Amitabh Bachhan
結果はテキストのようになります。
20005 Amitabh Bachhan
JCLは正しく設定されていますか?私の推測では、ファイルを開くときにエラーが発生しているということです。どちらか(プログラムによる)存在しないか、または空です。このプログラムはステータスコードをチェックしていないので、それを伝えることは不可能です。いくつかのチェックを追加して、ファイルが開いているかどうかを確認します。 – SaggingRufus
@SaggingRufus OpenCOBOLです(年前はGnuCOBOLに改名されました)。 JCLは関係ありません:-) –
テキストファイルを作成し、それをインデックスファイルとして使用することはできません。インデックス付きファイルを作成するために別の小さなCOBOLプログラムを作成する場合(既存のファイルを入力し、各レコードをインデックスファイルに書き込む)、「インデックス付きファイルサポート」がインストールされていると仮定すると、上のプログラムを変更して、ファイルを作成し、次に動作する必要があります。 @SaggingRufusがすでに示唆しているように、あなたはほぼ確実にOPEN上で非ゼロのFILE STATUSとREADを得ています。読んでキー入力をしていることを示すのは良いことです。 –