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

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

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

■22466 / inTopicNo.1)  「数値」をサブルーチン内で「文字列」として
  
□投稿者/ ルドロフ -(2011/10/14(Fri) 22:48:53) [ID:uKJmoodQ]
    2011/10/14(Fri) 23:07:31 編集(投稿者)

    タイトル通りなのですが、ちょっと複雑です。

    ↓処理ここから

    プロローグ:
    StartBGM Redman.mid
    A = 50
    Talk システム
    $(B(A))・$(B(50))
    終わりです。
    End
    GameClear

    B:
    Local 結果
    結果 = IsNumeric(Args(1))
    Return 結果

    ↑処理ここまで

    このままでは最初の一行は

    1・1

    と表示されます。

    これを「B」というサブルーチンのみに手を加えて

    0・0

    と表示されるようにしたいのです。

    どのような関数を用いればよろしいのでしょうか。教えてください。

引用返信/返信 削除キー/
■22468 / inTopicNo.2)  Re[1]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ SA-2 -(2011/10/15(Sat) 12:05:22) [ID:f8KVyObG]
    初めましてルドロフさん。通りすがりのSA-2と申します。

    サブルーチン「B:」の中で数字だった物を文字列扱いに反転させるという
    理解で正しいのであれば、Replace関数を使った、


    ↓処理ここから

    B:
    Local 結果
    結果 = Replace(IsNumeric(Args(1)),1,0)
    Return 結果

    ↑処理ここまで


    ではいかがでしょうか。変数「結果」の中身、1を0に置換しております。
    こちらで確認したところ一応0・0にはなりました。
    置換を使っているので余りスマートと言いがたいですが。

    より的確なやり方は先輩諸兄のご回答を待つということで…
    以上、ご参考までに。
引用返信/返信 削除キー/
■22470 / inTopicNo.3)  Re[2]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ ルドロフ -(2011/10/15(Sat) 12:43:23) [ID:uKJmoodQ]
    関数に限定していたのが間違いだったのでしょうか。

    「結果 = IsNumeric(Args(1))」
    の部分は変更したくないです。

    修正部分はその行の前だけにしてください。

    反転したいのは確かですが、
    IsNumeric関数は実際には使わないつもりです。

引用返信/返信 削除キー/
■22471 / inTopicNo.4)  Re[3]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ 中箱 -(2011/10/15(Sat) 15:22:58) [ID:XAPi9INn]
    >「結果 = IsNumeric(Args(1))」
    >の部分は変更したくないです。

    >修正部分はその行の前だけにしてください。


    Args関数の返り値をサブルーチンの中で変更する方法はありませんから
    不可能でしょう。
引用返信/返信 削除キー/
■22472 / inTopicNo.5)  Re[4]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ ルドロフ -(2011/10/15(Sat) 15:32:07) [ID:uKJmoodQ]
    Args関数の返り値を変更したいわけではないです。

    Args関数の返り値はそのままで別の変数に文字列として代入したいのです。
    勿論サブルーチンの引数はそのままで。

    どうやら説明不足だったようです。

引用返信/返信 削除キー/
■22473 / inTopicNo.6)  Re[5]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ かせうか -(2011/10/15(Sat) 16:20:43) [ID:3ylxFxEf]
http://fesrc.blog.fc2.com/
    こんにちは。
    横失礼します。

    IsNumeric関数で色々試してみたところ、
    50 "50" 50
    このいずれでも数値である文字列として認識されているようですね。
    これはルドロフさんも既にお試しになられているかと思います。

    SRCでは、変数の中身が数値であるか、文字列であるかは、取り出す時に決められているようなので、SRCで取り扱う変数の型は文字列・数値の区別を持たない型なのではないかと思います。
    (上記のIsNumeric関数も、内部の処理は「引数で与えられた文字列に数字以外が含まれていなければ1、そうでなければ0を返す」という事をしているだけのような気がします)

    よって、変数に数字のみの値を格納する段階で、それが文字列だとする手段は多分にありません。

    想定している実際の利用を聞かせて頂ければ、別の方法から解決のアプローチができるかもしれません。

    長文で失礼致しました。
    割と断定気味に書いたので、私の勘違いでないことを祈ります。

    それでは、参考になれば幸いです
引用返信/返信 削除キー/
■22474 / inTopicNo.7)  Re[5]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ 中箱 -(2011/10/15(Sat) 20:42:13) [ID:XAPi9INn]
    なぜ文字列として代入されないとだめなのか(数値として代入されると何がまずいのか)、
    言い換えれば、文字列として代入されている場合と数値として代入されている場合とでSRC動作上の違いがあることを私は知らないので
    今回もルドロフさんのやりたいこととは違う回答かもしれませんが

    数値を & 演算子で空文字列と結合すると、その直後は文字列として代入されてしまうようです。
引用返信/返信 削除キー/
■22475 / inTopicNo.8)  Re[6]: 「数値」をサブルーチン内で「文字列」として
□投稿者/ ルドロフ -(2011/10/15(Sat) 22:16:47) [ID:uKJmoodQ]
    とりあえずこの質問は撤回させていただきます。

    なんだか今の問題は解けてしまったようなのです。突然申し訳ありません。

解決済み!
引用返信/返信 削除キー/
■22761 / inTopicNo.9)  パネライコピー
□投稿者/ パネライコピー -(2013/07/24(Wed) 10:27:25) [ID:XwSHo3Ze]
http://www.jpwatch2019.com/product/p2/index.html
    No22474に返信(中箱さんの記事)
    > なぜ文字列として代入されないとだめなのか(数値として代入されると何がまずいのか)、
    > 言い換えれば、文字列として代入されている場合と数値として代入されている場合とでSRC動作上の違いがあることを私は知らないので
    > 今回もルドロフさんのやりたいこととは違う回答かもしれませんが
    >
    > 数値を & 演算子で空文字列と結合すると、その直後は文字列として代入されてしま

引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -