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

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

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

■19375 / inTopicNo.1)  アイテムリスト追加インクル
  
□投稿者/ (略して)将軍 -(2006/11/23(Thu) 23:11:04) [ID:fIkSQ0o7]
    こんばんは、(略して)将軍です
    コマンドを使用すると、アイテムの名前が書き込んである変数の中身を調べて
    中身が入ってない変数が来たら、新しく書き込むというものを作成したのですが
    2度使用すると、前の物に上書きされてしまいます

    アイテムショップ追加:
    Set アイテムショップ[0] アイテム購入を終了する
    Set i 1
    Do While (アイテムショップ[i] != 0)
    Incr i
    Loop
    Set アイテムショップ[i] Args(1)
    Return

    0番は購入終了の為に用意しておいて
    インクルを使うと、変数の一番後の何も入っていない所に新しいのが追加されるようにしたいのですが、どうも上手くいきません
    どの様にすればよろしいのでしょうか?
引用返信/返信 削除キー/
■19377 / inTopicNo.2)  Re[1]: アイテムリスト追加インクル
□投稿者/ 中箱 -(2006/11/24(Fri) 02:02:11) [ID:8NrUE61r]
    どうも、中箱です。

    Args(1)に、追加するアイテム名が入っているわけですね?


    >Do While (アイテムショップ[i] != 0)
    この判定式が問題かと思われます。
    (詳細に調べたわけではありませんがどうやら、
     「〜〜 != 0」とした場合、左辺に(数値ではない)文字列を持ってくると
     条件式が成り立たないようです。
     右辺に数値を持ってくると、数値であるかどうかを判定する意味となっているような)


    ともあれ、配列「アイテムショップ」には文字列が格納されるのでしょうから、
    文字列が入っているかどうかを判定するのであれば
    空文字列「""」を式の右辺に用いるべきかと。

    こちらで軽く試した限りでは、
      Do While (アイテムショップ[i] != "")
    で動作しそうです。


    また、配列の引数が連続で飛びが無いのであれば、
    指定した配列の要素数を返すCount関数を用いてはどうでしょうか。


    では。
引用返信/返信 削除キー/
■19378 / inTopicNo.3)  Re[1]: アイテムリスト追加インクル
□投稿者/ ヒロキ -(2006/11/24(Fri) 11:12:23) [ID:oRdAMM9r]
http://members.jcom.home.ne.jp/0927089801/src/test.eve
    2006/11/24(Fri) 11:13:46 編集(投稿者)

    おはようございます、ヒロキです。

    単純に配列に値を追加していくだけなら、
    Count関数を使って↓のような感じでできます。

    アイテムショップ[Count(アイテムショップ) + 1] = "値1"
    アイテムショップ[Count(アイテムショップ) + 1] = "値2"
    アイテムショップ[Count(アイテムショップ) + 1] = "値3"


    または、配列に値を追加するサブルーチンを作って

    /**
    * addToArray(array, value)
    * 配列の末尾に値を追加する。
    *
    * @param array 配列名
    * @param value 追加する値
    */
    AddToArray:
    Eval("$(Args(1))[Count($(Args(1))) + 1]") = Args(2)
    Return

    void_call:
    // nothing to do
    Return

    void_call AddToArray("アイテムショップ", "値4")
    void_call AddToArray("アイテムショップ", "値5")
    void_call AddToArray("アイテムショップ", "値6")

    とかやってみたり。


    上ふたつのやり方だと、タイプする量がなんか多くてめどいので

    Local next = `Count(アイテムショップ) + 1`
    アイテムショップ[Eval(next)] = "値7"
    アイテムショップ[Eval(next)] = "値8"
    アイテムショップ[Eval(next)] = "値9"

    なんてやってみたりも。


    やり方はいろいろあります。
    以上、参考までに
    #SRCってなんで'じゃなくて`使うんでしょうね
引用返信/返信 削除キー/
■19380 / inTopicNo.4)  Re[2]: アイテムリスト追加インクル
□投稿者/ (略して)将軍 -(2006/11/24(Fri) 18:46:50) [ID:fIkSQ0o7]
    あら……面倒くさい事をしなくてもこういう方法があったんですね
    おかげさまでインクル作成上手くいきそうです
    中箱さん、ヒロキさん、どうもありがとうございました

解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -