| 時々お世話になっているクレセントと申します。事の発端はGlobal&UnitIDコマンドの不具合でしたが、改良中に深みにはまりました。 前回も似たようなことがありましたが・・・バグ(なのかどうかも質問の一部です)報告の前に、他の打開策を見つけたく、質問させて頂きます。 非常に冗長な文体ですが平に容赦を。
######################################### 状況は以下の通りです。
###状況1: 非常に冗長なプログラムを短くするために、UnitID関数を使う際に変数を使えないかと思い実行しました。
例:For文とセットでCreate文のグループIDに(エース & i)。パイロットのグループIDが"エースi"という前提の元・・・
元々→改善(改悪?)後
UnitID(エース1)→UnitID(エース & tar) 当然ですが、この時変数tarの値は1を指している状態です。
結果:「エース & tar」は存在しません、の様なエラーメッセージ。つまり、tarは変数でなく、文字扱いなのですね。
試行錯誤の副産物で気付いたのですが、Globalコマンドも妙な動作をしてくれます。
###状況1’: 例: For文とセットで使用。 Global 変数 & i または Global "変数 & i"
結果:見事に "変数" "&" "i" "変数 & i" というグローバル変数を制作してくれました。 こちらは連想配列で処理しろと言われそうなのでどうでもいいことなのですが。
####状況2: 今度は全データを逆に全部連想配列で置き換えてみようと思い、実行。 例:For文とセットでCreate文のグループIDにエース[i]
その他、関数で同IDを利用して情報を参照しようとしましたが、そもそも上記のCreate文ではIDは無設定(省略)と同じでした。
#############################################
質問はここからです。 1.そもそも、これら(上記した三つの状況)の動作は仕様でしょうか。それとも本体バグ?
上記の問いが仕様だとして・・・ 2.「状況1」に見られる(文字+変数)で作られたIDを参照する際、打開策はありますか?
##############################################
結論から言えば、仕様かバグかどうかは二の次で、「(文字+変数)で作られたIDを参照」することさえできればいいのですが。駄目ならプログラムを元に戻すだけですし・・・。
ともあれ、よろしくお願いします。長文&乱文失礼。
|