それに対応する返答をメッセージボックス内に表示する”
・・・というプログラムを作りたいと思っています。
とりあえず、以下のようにスクリプトを書いてみました。
「送信」ボタンを押す1回目はうまくいくのですが、2回目はエラーになります。
2回目には、「返答管理.txt」が白紙で保存されてしまい、うまくいきません。
どなたか解決法をご指南いただけませんか?
問題のある部分を一部抜粋し訂正でも構いません。
その際はどこに挿入すべきかも教えていただけると大変ありがたいです(TAT)
【スクリプト】
randomize
sdim c,320 sdim d,320 sdim word sdim buf2 sdim ans notesel buf noteload "test.txt" del_gyo = notemax mesbox ans,400,100,0 input word,400,25 button "送信",*dousa stop *dousa repeat notemax memexpand c,4080 memexpand d,4080 getstr c(cnt),buf,idx,'%' idx = idx+strsize getstr d(cnt),buf,idx if instr(word,,c(cnt))>=0:noteadd d(cnt),,0 idx = idx+strsize loop notesave "返答管理.txt" notesel buf2 noteload "返答管理.txt" repeat del_gyo notedel 0 loop notesave "返答管理.txt" noteload "返答管理.txt" r = rnd(notemax);←ここでエラーが起こる。 noteget ans,r objprm 0,ans stop
【test.txtの内容】
りんご%赤くておいしい実です
りんご%禁断の果実
みかん%オレンジ色の実です
りんご%英語ではapple
みかん%冬が旬!
もも%美味しいけど、高いんです
もも%柔らかくてジューシー
みかん%ジャパニーズ・オレンジ?
みかん%ヘタから剥くか、ヘソから剥くか・・・
↑%より左にあるフルーツ名が文章(関数word)に含まれていた場合、
その単語の%より右が表示されるというプログラムを目指しています。
【やりたかったこと↓】
例)1.「美味しいもも」と入力
2.今回の「もも」に対応する返答は
「美味しいけど高いんです」と「柔らかくてジューシー」。
この2つが「返答管理.txt」に1行ずつ保存される。
3.「返答管理.txt」のうち一つの行がランダムで選ばれる
4.メッセージボックス内に「柔らかくてジューシー」が表示される