SRC質問掲示板Mk2
(現在 過去ログ87 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■16057 / inTopicNo.1)  IDもしくは、Globalなどに関する疑問
  
□投稿者/ クレセント -(2005/02/14(Mon) 18:13:03) [ID:D7GMGC3s]
    時々お世話になっているクレセントと申します。事の発端は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を参照」することさえできればいいのですが。駄目ならプログラムを元に戻すだけですし・・・。

    ともあれ、よろしくお願いします。長文&乱文失礼。
引用返信/返信 削除キー/
■16058 / inTopicNo.2)  Re[1]: IDもしくは、Globalなどに関する疑問
□投稿者/ TomTom -(2005/02/14(Mon) 18:29:26) [ID:mc0S8D3Q]
    TomTomです。

    結論としては、「記述の仕方がおかしい」と言うことになります。

    >UnitID(エース1)→UnitID(エース & tar)

    変数名に変数を使用したい場合、Eval関数を使用しなければなりません。
    この場合

    UnitID(Eval("エース" & i)) または Eval(UnitID("エース" & i))

    となります。Globalに関しても同様ですね。
    ただ、一部のコマンドでEval関数が使用できない場合がありますので、
    もしかしたらGlobalでは使用できないかもしれません。

    ForでCreateの件は
    「『エース[i]』という変数に格納されている値をグループIDとして指定する」
    と言う動作になっています。
    ですが「エース[i]」という変数に値が格納されていない場合、それはただの文字列として認識されます。恐らく「エース[i]」という文字列を延々と設定し続けるだけでしょう。
    この場合は「("エース" & i)」のように文字列を生成してやれば良いでしょう。

引用返信/返信 削除キー/
■16061 / inTopicNo.3)  Re[2]: IDもしくは、Globalなどに関する疑問
□投稿者/ クレセント -(2005/02/14(Mon) 23:06:25) [ID:D7GMGC3s]
    TomTom様、ご教授ありがとうございます。

    Eval関数の使い方が理解できていなかったのが最大の原因ですね。

    それと、Createの方も言及してくれてありがとうございます。
    先に変数を設定してからCreateしてみると、確かにIDがその値を返していますね。IDが空(から)を示したわけがよく分かりました。


    また何かありましたらよろしくお願いします。
    それでは。
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -