LPRINT後で終了してしまう。[V2.62]

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
KJH
記事: 8
登録日時: 2006年12月19日(火) 21:03
お住まい: 京都府

LPRINT後で終了してしまう。[V2.62]

#1 投稿記事 by KJH »

AB V2.62使って古いBASICプログラムの再生をしてます。
できるだけ、修正する箇所を減らしたいがためにV2.62を使用しています。

デバッガでは何とか正常(?)に動作するようになっているのですが、コンパイルしEXEで実行すると、LPRINTした後画面が閉じて終了してしまいます。
詳しくはLPRINT USINGなのですが・・・

環境はWinXPPro ネットワークプリンタ(コニカ複合機)です。

V2.62はサポート終了とのことであきらめるしかないかとも思ってますが、どなたかお力を貸してください。
よろしくお願いします。

止まる場所:

コード: 全て選択

print "プリント前":LPRINT USING "#### ####  ###### ######  ######)";K,I,DA,UN,CT;:LPRINT T$;:LPRINT USING "######) &        & &                 & &   & ###,### ###,### ###,###,###";CS,A$,B$,C$,V,A,V*A
print "プリント後":T#=T#+V*A:V#=V#+V
画面に「プリント後」と表示される前に終了します。
ゲスト

#2 投稿記事 by ゲスト »

試していませんが、3個目のLPRINTの”V*A”は、”V,A”ではないですか?
変数が1個不足している様子ですが・・・

あと、個人的な意見ですが昔のBASICからの移植でしたら、FBASICや
N88互換BASIC等の方が楽ですょ。
KJH
記事: 8
登録日時: 2006年12月19日(火) 21:03
お住まい: 京都府

#3 投稿記事 by KJH »

返信ありがとうございます。

>試していませんが、3個目のLPRINTの”V*A”は、”V,A”ではないですか?
>変数が1個不足している様子ですが・・・

” ”内に7カ所、変数も7個(最後の###はカンマ区切り9桁あります)
変数もV*Aで合っています。
” ”内の記述の仕方で、何か認識間違いしているのかな?と思うのですがひらめきません。

>あと、個人的な意見ですが昔のBASICからの移植でしたら、FBASICや
>N88互換BASIC等の方が楽ですょ。

そうなのかもしれません。最終的にEXEにコンパイルして使用したいのと、
いずれはプロンプトウインドウを使わない様にしていきたいので中間としてABが丁度よいと思いチャレンジしています。
後一歩かなぁと思えばこのまま仕上げたいんですけどねぇ

よろしくお願いします。
ゲスト

#4 投稿記事 by ゲスト »

試しもせずに、失礼しました。
久しぶりにAB2を使ってみました。

LPRINT USINGを行う前に、プリンタを指定すれば、動作します。
こんな感じです。

SelectPrinter "Adobe PDF"

>いずれはプロンプトウインドウを使わない様にしていきたいので中間としてABが丁度よいと思いチャレンジしています。

チャレンジの第1歩として、APIを使用しデホルトプリンタ名を取得するコードを書いてみては如何でしょうか?
KJH
記事: 8
登録日時: 2006年12月19日(火) 21:03
お住まい: 京都府

#5 投稿記事 by KJH »

ありがとうございます。

SelectPrinter は使用しています。
無指定で、ダイアログを表示するようにしています。

いろいろ試しているのですが、LPRINT USINGの記述の仕方が問題みたいです。

カンマ区切りで表示させたいので

コード: 全て選択

LPRINT USING "###,###";V
と記述すると、デバッグでは正常に出力されるのですが、
コンパイルすると終了してしまいます。

"(" ")" 等が入っていても正常に文字入らない様な気がします。

代用できるようにFUNCTION作らないといけないかなぁと思い始めました。
回避できるような方法何かないものでしょうか。
KJH
記事: 8
登録日時: 2006年12月19日(火) 21:03
お住まい: 京都府

#6 投稿記事 by KJH »

LPRINT USING なんですが、全く効果を発揮していないようです。
この場合印刷時に終了してしまうことはありませんが、
指定した書式で印刷できず、ただの変数の値の羅列になります。
また、「Using」も変数と見なされるようで、先頭に「0」が印字されます。
Const Using="" としておけば、印刷されません。

何か特別な記述が必要なのでしょうか。
また、私だけなのかな。

フォルダは分けてますが、V2,V3,V4と3つのVerを入れてあります。
この辺りも影響しているのでしょうか?
お力を貸してください。

よろしくお願いします。
KJH
記事: 8
登録日時: 2006年12月19日(火) 21:03
お住まい: 京都府

#7 投稿記事 by KJH »

結局、LPrint Usingを使用しない方法を取りました。

数字をカンマ付きで指定文字数に変換する関数。
数字をカンマ無しで指定文字数に変換する関数。
文字列を指定文字数にそろえる関数。

上記を作成し、置き換えました。
コンパイルしても印刷時に終了しなくなりました。

デバッグ時とEXEで文字の大きさが変わってしまうのは仕方がないのかなぁ。
印刷用のフォントの指定をする方法などありませんか?
返信する