闇龍神の質問~toNumber()の使い方~

投稿者:  1 mini 闇さん 投稿日:2012/03/25 23:57

どうしても分からないので質問掲示板に書きましたが
rurun9様しかコメントしてくれずブログに書きました
case speakWithSelect(2,"はい","いいえ", 
    "変数を読み込みますか")
  when 0
l=0
n=0
q=1
w=0
while l<1
case speakWithSelect(11,"0","1","2","3","4","5","6","7","8","9", "終了",
    "コードを入力してください")
  when 0
    w=w*10+0
  when 1
    w=w*10+1
  when 2
    w=w*10+2
  when 3
    w=w*10+3
  when 4
    w=w*10+4
  when 5
    w=w*10+5
  when 6
    w=w*10+6
  when 7
    w=w*10+7
  when 8
    w=w*10+8
  when 9
    w=w*10+9
  when 10
l=10
end
q=q*10
end
e=loadGameData(w)
 #ここだとe=5,5(正常)e[0]とe[1]はnull(1)
 e=toNumber(e)
 speak("ロードした変数の値",e,"変数[0]の値",e[0],"変数[1]の値",e[1],"です")
 #↑この辺りが39行目
#eの値がNaNでe[0]とe[1]がnullになってしまいました (2)

エラー文
1st argument is not array. line : 39
1st argument is not array. line : 39
原因は(1)のところでは"5,5"と文字で保存されていてカンマで区切られていない
(2)ではカンマも数値に使用としエラーが起こっていると考えられます


原因が分かっていても解決方法が分からないので
馬鹿な僕でも分かるよう教えてください

おまけ画像

yahoo japanの質問掲示板改造
このような画像を作るのは好きで
結構ネタに使えると思うので作成して欲しい方は
元の画像と変えて欲しい欲しい文をメールで送っていただければ
一週間前後で作成します

日付等は希望が無いなら100年後の25時以降に設定します

まあこんなの頼む人いないと思いますが

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 7186 1 mini ikosami(投稿日:2012/03/26 00:17, 履歴)
e = "5,5"

e[0] = 5
e[1] = 5
に変えたいのなら、
文字列を区切り文字で分割する
splitString()関数を使います。

e=loadGameData(w)
e = splitString(e, ",")



toNumber()は、
a = "12"
b = "34"
c = a + b
#"12"+"34"="1234"

a = toNumber(a)
b = toNumber(a)
d = a + b
# 12+34=46


という機能です。
Material 7186 1 mini ikosami(投稿日:2012/03/26 01:05, 履歴)
"5,5"を
数値の5にするなら
ちなみに、この関数がそのまま使えますよ。
http://page.rmake.jp/wikis/145

e = Array(e)
Material 7186 1 mini ikosami(投稿日:2012/03/26 01:06, 履歴)
「ちなみに」の場所を間違えました・・・
  1 mini 闇さん(投稿日:2012/03/26 11:28, 履歴)
splitString()関数を使えば"5,5"が"5","5"になるって事ですか?

その"5"をtoNumber()で5に変えればいいって事ですか?
Material 7186 1 mini ikosami(投稿日:2012/03/26 18:43, 履歴)
はい。そういうことです。
  1 mini 闇さん(投稿日:2012/03/26 12:27, 履歴)
解決しました
これを使ったテストゲームを公開しました
ゲームの概要は文字数の限度の関係により一部協力者様のURLを省略しました
User icon mini 退会したユーザー(投稿日:2012/03/26 00:19, 履歴)
おまけ画像が忠実で吹いた。
  1 mini 闇さん(投稿日:2012/03/26 11:39, 履歴)
一応一人回答してくれたようですww
Nyan mini rurun9(投稿日:2012/03/26 00:31, 履歴)
ありゃ。なんか出張所ができてたw
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/03/26 01:29, 履歴)
何がしたいのか分からなかったので
ROMしていましたが、

投稿場所が分岐されると
追うのも面倒になった。
002 1  mini ugonight(投稿日:2012/03/26 01:53, 履歴)
でも、とことん話し合ってくれた人がいただけでも、すごく幸せだと思いますよっ
難しい話だけあって僕には分りかねますが…
でも、軽いマルチポストとかになっちゃうのでちょっと気をつけましょうね
僕もやっちゃったことあるんで反省してます…
別に嫌われているわけじゃないと思いますよ、ただ皆さん忙しくてこういう話には食いつきにくいだけかもしれませんし…

Rmakeの人と仲良くなりたいなら、twitterでもやってみませんか?
リストも作って置いたんで→
  1 mini 闇さん(投稿日:2012/03/26 11:38, 履歴)
rurun9さんaoihikawaさんすみません
何か質問掲示板よりブログの方が自由なコメントが出来るので
より多くの意見が集まると思いまして
ブログに書きました

ugonightさん
登録してあるのですがずっと放置だったため
パスワードとユーザー名を忘れてしまいました
User icon mini 退会したユーザー(投稿日:2012/03/26 00:25, 履歴)
toNumber関数に、変換できないものを放ると、消滅するようです。
toNumber("2310") #数値「2310」になる

toNumber("タクミ2310") #nullになる。事実上の消滅。


この場合、変数eはloadGameData関数から持ってきた文字列なので、
toNumber関数は使えません。
splitString関数で数値の配列に直してあげる必要があります。

※ここらへんの関数はいじってないので僕自身よくわかりません。
 詳しい方、補足お願いします。
User icon mini 退会したユーザー(投稿日:2012/03/26 00:26, 履歴)
書いてるうちに先にやられた(^^ ;)
  1 mini 闇さん(投稿日:2012/03/26 11:30, 履歴)
つまりカンマが数字に変換出来ないからエラーが起こっている
であってたのですね