前提・実現したいこと
オープンCobolで、読み込んだデータファイル「cr.dat」より、帳票を作成し、出力先ファイル「 lp.dat」の中身をコマンドプロンプトで画面に表示したい
発生している問題・エラーメッセージ
「cr.dat」最終行の"SHOUHINMEI-5"が、「lp.dat」に出力されない
該当のソースコード
dodox86様に載せていただいたコードに同じ( t03.cob)
Cobol
1 IDENTIFICATION DIVISION. *>見出し部 2 PROGRAM-ID. RENSYU-1. 3 4 ENVIRONMENT DIVISION. *>環境部 5 CONFIGURATION SECTION. 6 SOURCE-COMPUTER. COMPUTER-X. 7 OBJECT-COMPUTER. COMPUTER-X. 8 INPUT-OUTPUT SECTION. 9 FILE-CONTROL. 10 SELECT CD-FILE ASSIGN TO './cr.dat'. 11 SELECT LP-FILE ASSIGN TO './lp.dat'. 12 *> SELECT CD-FILE ASSIGN TO CR. -------------※当初の質問でOrlofskyさんにご指摘いただき、 13 *> SELECT LP-FILE ASSIGN TO LP. -------------修正済みの箇所 14 15 DATA DIVISION. *>データ部 16 FILE SECTION. 17 FD CD-FILE 18 LABEL RECORD IS OMITTED. 19 01 CD-REC. 20 02 SHOUHINMEI-I PIC X(20). 21 02 SURYOU-I PIC 9(3). 22 02 TANKA-I PIC 9(3). 23 02 FILLER PIC X(54). 24 FD LP-FILE 25 LABEL RECORD IS OMITTED. 26 01 LP-REC. 27 02 FILLER PIC X(10). 28 02 SHOUHINMEI-O PIC X(20). 29 02 FILLER PIC X(10). 30 02 SURYOU-O PIC 999. 31 02 FILLER PIC X(10). 32 02 TANKA-O PIC 999. 33 02 FILLER PIC X(10). 34 02 KINGAKU-O PIC 9(7). 35 02 FILLER PIC X(10). 36 WORKING-STORAGE SECTION. 37 77 KINGAKU-W PIC 9(7). 38 77 EOF PIC X(3) VALUE SPACE. 39 40 PROCEDURE DIVISION. *>手続き部 41 HAZIME. 42 OPEN INPUT CD-FILE 43 OUTPUT LP-FILE. 44 MOVE SPACE TO LP-REC. 45 PERFORM UNTIL EOF = "END" 46 READ CD-FILE RECORD 47 AT END 48 MOVE "END" TO EOF 49 NOT AT END 50 COMPUTE KINGAKU-W = SURYOU-I * TANKA-I 51 MOVE SHOUHINMEI-I TO SHOUHINMEI-O 52 MOVE SURYOU-I TO SURYOU-O 53 MOVE TANKA-I TO TANKA-O 54 MOVE KINGAKU-W TO KINGAKU-O 55 WRITE LP-REC AFTER 2 LINES 56 END-READ 57 END-PERFORM. 58 CLOSE CD-FILE LP-FILE. 59 STOP RUN. 60 61
コマンドプロンプト画面:<実行の流れ>
c:\Cobol>cobc -x --free test.cbl c:\Cobol>test.exe c:\Cobol>type lp.dat SHOUHINMEI-1 123 100 0012300 SHOUHINMEI-2 500 200 0100000 SHOUHINMEI-3 800 300 0240000 SHOUHINMEI-4 900 400 0360000 c:\Cobol>
cr.dat(データファイル)の内容
SHOUHINMEI-1 123100#################################################### SHOUHINMEI-2 500200#################################################### SHOUHINMEI-3 800300#################################################### SHOUHINMEI-4 900400#################################################### SHOUHINMEI-5 600200####################################################
補足情報(FW/ツールのバージョンなど)
windows10
open-cobol-1.0-2
<ソースコードの出典>
『【午後選択】基本情報技術者試験らくらく突破COBOL 穂積和子+藤山秋良・著』
まず、ご提示のコードが読みづらいですのでマークダウンで整形してください。質問が読みづらいとそれだけ回答を得られる機会が減ります。
https://teratail.com/help/question-tips
具体的には例えば以下のようにします。
```COBOL
COBOLのコード
...
```
また、教材に書いてあったコードとはOpenCOBOL用のものでしょうか。それとも別の(普通の?)COBOL用のものですか。OpenCOBOLのものでなければ、Windows環境において一部の動作で互換性が無いと思いますので、修正の必要があったりすると思います。
お使いのWindowsのバージョンやOpenCOBOLのバージョンなども示した方が良いです。質問の修正、追記をお願いいたします。
>質問者yuuki_yさん
せっかく質問を修正してもらったところに悪いのですが、今後の為に指摘させていただきます。質問編集履歴で、
> 画像の方がコードが見やすいかと思い、添付させてもらいました
とのことですが、ソースコードを質問に提示するときは、画像では逆に迷惑になります。なぜならば回答者を含む閲覧者がコードを検証するのにソースコードのテキストデータを得られないからです。画像にするのは、画像でないと分からないことを示す場合に限ります。そのためにマークダウン機能があります。
回答3件
あなたの回答
tips
プレビュー