AB2(ab262)でプログラムに実行時パラメーターを渡す方法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: AB2(ab262)でプログラムに実行時パラメーターを渡す方法

by ミニヨン » 2007年10月16日(火) 19:03

その後のその後

Cmdline$関数ではコマンドラインパラメータはスペース区切りで渡されるので
パラメータを切り出すコードを書きました
QBASICのOPEN "COMn:の後ろの形式とdos(win2k)modeコマンドの形式に対応
QBASICのソースやバッチからsedでComSet用のバッチを作成するつもり

後で気づいたんですがバッチで起動ならEnviron$関数も使えますね

sedでQBASICのソースをAB2に書き換えるスクリプトも作成
AB2には無いltrim$() rtrim$() ucase$() lcase$()関数も作成
文法エラーがでないところまでは変換できましたがサブルーチンの数に制限
が有る為?かどのサブルーチンを呼んでも呼んでない特定のサブルーチンしか
実行されないという怪現象にはまりました^^;

by ミニヨン » 2007年10月13日(土) 20:09

事後報告です

パラメータ渡しができたのであとはシリアルポートの設定ですが

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しか使用できなかったのでこれからいろいろと活用させていただきます

by ミニヨン » 2007年10月12日(金) 22:08

> プログラム中でCmdLine$を参照するたけです。

ありがとうございます。

特殊変数だとばかり思っていて関数を見落としていました。

by ゲスト » 2007年10月12日(金) 14:35

>>QBASICで使用していたプログラムをAB2に書き換えて使用したいと思っていますが
>>実行時にパラメータを渡す方法がわかりません

EXEの起動オプションで指定されたパラメータは、CmdLine$に代入されています。
プログラム中でCmdLine$を参照するたけです。

>>という方法だとBasicSystemのウィンドウが開いたままになって

コンパイルをコマンドで実行する方法でしたら知りません。

AB2(ab262)でプログラムに実行時パラメーターを渡す方法

by ミニヨン » 2007年10月10日(水) 12:47

QBASICで使用していたプログラムをAB2に書き換えて使用したいと思っていますが
実行時にパラメータを渡す方法がわかりません

echo AAA$ = %1 > aaa.bas
type aaa2.bas >> aaa.bas
BasicSystem.exe aa.bas
という方法だとBasicSystemのウィンドウが開いたままになって
しまいます

QBASICではaa2.basの最後で
SYSTEM
EXIT
で抜けていました

他に何か良い方法は無いでしょうか

(AB2を使用する理由はRS232Cを多用している為です)

ページトップ