プロが教えるわが家の防犯対策術!

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

<1>
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC

<2>
AAAAAAAAAA

BBBBBBBBBB

CCCCCCCCCC

<3>
AAAAAAAAAABBBBBBBBBBCCCCCCCCCC

A 回答 (3件)

どんな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行改行
    • good
    • 3

#2の方の答えのように、ホストの場合、ラインプリンタの改行は行頭の文字で制御されます。

ホスト用のレーザープリンターであればこれをエミュレートするはずです。

'1'で改ページ、' '(スペース)で改行、'0'で一行空け、'+'で重ね打ちだったと思います(数字でその行数改行という拡張機能もあったような)。ですから、行頭にこれらの文字があれば制御されるはずです。

PCのCOBOLだと、このあたりがはっきりしませんが、その場合、改行文字(OSで違うので、CRかCR/LF)を直接出力してみてはいかがでしょう。
    • good
    • 0

レーザですか?インパクトですか?


プリント領域の定義が、プリンタの最大幅を越えているため、と思います。

COBOL離れてずいぶん経つので自信なし。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A