QBASICで使用していたプログラムをAB2に書き換えて使用したいと思っていますが
実行時にパラメータを渡す方法がわかりません
echo AAA$ = %1 > aaa.bas
type aaa2.bas >> aaa.bas
BasicSystem.exe aa.bas
という方法だとBasicSystemのウィンドウが開いたままになって
しまいます
QBASICではaa2.basの最後で
SYSTEM
EXIT
で抜けていました
他に何か良い方法は無いでしょうか
(AB2を使用する理由はRS232Cを多用している為です)
AB2(ab262)でプログラムに実行時パラメーターを渡す方法
事後報告です
パラメータ渡しができたのであとはシリアルポートの設定ですが
AB2でレジストリのAB用シリアルポートの設定情報(全ポート共通)を書き換える
SetCom.exeを作成しシリアルポートを使用するAB2プログラムの起動直前にセット
することにしました。
で、わかったこと
OPEN "COM1
で使用する場合
COM1/COM3/COM4/COM8が使用できた (多分COM1-8ないしCOM9はOK)
COM12は実行時にエラー
別のプログラムなら異なる設定で2つ以上のシリアルポートを同時使用できる
1つのプログラム中では同じ設定でしか使用できない
シリアルポートをプログラム内で途中で設定変更することはできない
シリアルポートの設定情報はBasicSystem.exeの終了時にレジストリに書かれる
コンパイルしたxxx.exeモジュールは起動時にレジストリから設定情報を取得
BasicSystem.exeを起動して、Setcom.exeで設定を変更し、BasicSystem.exeを終了すると変更前の設定に戻る
QBASICだとCOM1/COM2しか使用できなかったのでこれからいろいろと活用させていただきます
パラメータ渡しができたのであとはシリアルポートの設定ですが
AB2でレジストリのAB用シリアルポートの設定情報(全ポート共通)を書き換える
SetCom.exeを作成しシリアルポートを使用するAB2プログラムの起動直前にセット
することにしました。
で、わかったこと
OPEN "COM1
で使用する場合
COM1/COM3/COM4/COM8が使用できた (多分COM1-8ないしCOM9はOK)
COM12は実行時にエラー
別のプログラムなら異なる設定で2つ以上のシリアルポートを同時使用できる
1つのプログラム中では同じ設定でしか使用できない
シリアルポートをプログラム内で途中で設定変更することはできない
シリアルポートの設定情報はBasicSystem.exeの終了時にレジストリに書かれる
コンパイルしたxxx.exeモジュールは起動時にレジストリから設定情報を取得
BasicSystem.exeを起動して、Setcom.exeで設定を変更し、BasicSystem.exeを終了すると変更前の設定に戻る
QBASICだとCOM1/COM2しか使用できなかったのでこれからいろいろと活用させていただきます
その後のその後
Cmdline$関数ではコマンドラインパラメータはスペース区切りで渡されるので
パラメータを切り出すコードを書きました
QBASICのOPEN "COMn:の後ろの形式とdos(win2k)modeコマンドの形式に対応
QBASICのソースやバッチからsedでComSet用のバッチを作成するつもり
後で気づいたんですがバッチで起動ならEnviron$関数も使えますね
sedでQBASICのソースをAB2に書き換えるスクリプトも作成
AB2には無いltrim$() rtrim$() ucase$() lcase$()関数も作成
文法エラーがでないところまでは変換できましたがサブルーチンの数に制限
が有る為?かどのサブルーチンを呼んでも呼んでない特定のサブルーチンしか
実行されないという怪現象にはまりました^^;
Cmdline$関数ではコマンドラインパラメータはスペース区切りで渡されるので
パラメータを切り出すコードを書きました
QBASICのOPEN "COMn:の後ろの形式とdos(win2k)modeコマンドの形式に対応
QBASICのソースやバッチからsedでComSet用のバッチを作成するつもり
後で気づいたんですがバッチで起動ならEnviron$関数も使えますね
sedでQBASICのソースをAB2に書き換えるスクリプトも作成
AB2には無いltrim$() rtrim$() ucase$() lcase$()関数も作成
文法エラーがでないところまでは変換できましたがサブルーチンの数に制限
が有る為?かどのサブルーチンを呼んでも呼んでない特定のサブルーチンしか
実行されないという怪現象にはまりました^^;