• ベストアンサー

COBOLの改行

COBOLでWRITEを使って<1>のように出力したいのですがAFTER(もしくはBEFORE) 1 LINE と指定すると<2>のように一行空いて出力されてしまうのはなぜなのでしょう。 ちなみにAFTERを指定しないと<3>のように改行が入らず出力されます。 <1> AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC <2> AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC <3> AAAAAAAAAABBBBBBBBBBCCCCCCCCCC

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

どんなOSのどんなCOBOLでしょうか? ファイル出力のレコード記述は、どのようになっていますか? 私は長年、汎用機のCOBOL85を経験していますが、プリンタ制御文字に「空白」を指定する方法で、こういったトラブルには無縁でした。 FD LIST-FILE. 01 LIST-REC. 03 FILLER PIC X. 03 LIST=FLD PIC X(132). MOVE SPACE TO LIST-REC. →先頭1文字に空白を入れることで、出力毎に1行改行

その他の回答 (2)

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.3

#2の方の答えのように、ホストの場合、ラインプリンタの改行は行頭の文字で制御されます。ホスト用のレーザープリンターであればこれをエミュレートするはずです。 '1'で改ページ、' '(スペース)で改行、'0'で一行空け、'+'で重ね打ちだったと思います(数字でその行数改行という拡張機能もあったような)。ですから、行頭にこれらの文字があれば制御されるはずです。 PCのCOBOLだと、このあたりがはっきりしませんが、その場合、改行文字(OSで違うので、CRかCR/LF)を直接出力してみてはいかがでしょう。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

レーザですか?インパクトですか? プリント領域の定義が、プリンタの最大幅を越えているため、と思います。 COBOL離れてずいぶん経つので自信なし。