注: ディスク出力の場合は、入れ子になっていても大丈夫です
6010 PRINT TAB(A); B$
;
6020 IF P$="y" THEN LPRINT TAB(A); B$; " Lp #6020"
;
6100 FOR G=0 TO 2
6110 A=(12*(I)): A$="###,###,###": A#=H#(I-1,G): GOSUB *P.TU1.C
6120 NEXT G
7000 *P.TU1.C
7010 PRINT TAB(A);: PRINT USING A$; A#
;
7020 IF P$="y" THEN LPRINT TAB(A);: LPRINT USING A$; A#;: LPRINT " Lp #7020"
;
入れ子とは、
PRINT ; LPRINT ; PRINT ; LPRINT ; のように交互に連続する状態。
DOS-BASICでは、「" Lp #6020"と" Lp #7020"」は、同一行に連続して印刷される。
N88互換BASICでは、印刷されずに、画面表示されてしまう。
原因は、#6010、#7010行のPRINT文末の「
; 」(=続くの命令)記号。これがあると、次にLPRINT命令があっても、PRINT命令として機能してしまう。
◇解決策
以下のように直し、
PRINT ; LPRINT ; の入れ子を無くせば良い
6010 PRINT TAB(A); B$
;
6015 PRINT USING " ##月 ###,###,### ###,###,### ###,###,###"; G; H#(0,G); H#(1,G); H#(2,G)
6020 IF P$="y" THEN LPRINT TAB(A); B$; " Lp #6020"
;
6025 IF P$="y" THEN LPRINT USING " ##月 ###,###,### ###,###,### ###,###,###"; G; H#(0,G); H#(1,G); H#(2,G); : LPRINT " Lp #7020"
または
◇解決策2.
6010 PRINT TAB(A); B$
;
6100 FOR G=0 TO 2
6110 A=(12*(I)): A$="###,###,###": A#=H#(I-1,G): GOSUB *P.TU1.C
6120 NEXT G
6220 IF P$="y" THEN LPRINT TAB(A); B$; " Lp #6020"
;
6300 FOR G=0 TO 2
6310 A=(12*(I)): A$="###,###,###": A#=H#(I-1,G): GOSUB *P.TU1.C2
6320 NEXT G

7000 *P.TU1.C
7010 PRINT TAB(A);: PRINT USING A$; A#
;

7100 *P.TU1.C2
7120 IF P$="y" THEN LPRINT TAB(A);: LPRINT USING A$; A#;: LPRINT " Lp #7020"
;
Top 88Menu