助けてください。・゚・(ノД`)・゚・。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 助けてください。・゚・(ノД`)・゚・。

解決しました!

by 伯羽 » 2005年11月25日(金) 19:02

ちゃんと話してくれるようになりました!
助けて頂いた方々、ありがとうございました。
完成品はこちら
話すだけですが。。。

by マティ » 2005年11月11日(金) 21:35

とりあえず、以下の形で初期化を行い、プログラムの論理エラーを取る事に専念した方が良いと思います。

コード: 全て選択


Dim Expression(2) As String

Expression(0) = "Angry"
Expression(1) = "Enjoy"
Expression(2) = "Sad"
論理エラーが取れたらファイルから、パラメータを取得出来るように改造します。

コード: 全て選択


Const MaxParam = 1000      'パラメータの上限
Dim Expression(MaxParam) As String,i As Long
'読み出し
Open "Expression.txt" For Input As #1
i=0 
While (Eof(1)=False)
    Input #1,Expression(i)
    i=i+1
    If(i>MaxParam)Then
        'エラー処理を書く
    End If
Wend
Close #1
実行ファイルと同じ場所に、Expression.txtを作成し、その内容を

コード: 全て選択

Angry
Enjoy
Sad
とします。

以上で、実行可能になると思います。

Re: ちなみに

by 伯羽 » 2005年11月10日(木) 18:54

んー 解決しないです、、、(´A`)

ちなみに

by konisi » 2005年11月08日(火) 19:33

ファイルの入出力のコードなら書けるので書いておきます。

指定バイトごとに読み出す場合(ここでは、変数XByteに指定バイト数を代入してあるとして書く。)

コード: 全て選択


'ファイルを開く
Open "a.txt" As #1
Field #1,XByte
'読み出し
Get #1,1,A$
Get #1,2,B$
    ・
    ・
    ・
'ファイルを閉じる
Close #1
一行ごとに読み出す場合(こっちの方が便利な場合も多い。)

コード: 全て選択


'ファイルを開く
Open "a.txt" For Input As #1
'読み出し
Input #1,A$
Input #1,B$
    ・
    ・
    ・
'ファイルを閉じる
Close #1
文字列をByte型に変換するにはMid$関数や何かとAsc関数を使うなり、何か別のもっと便利な関数を使うなり何とかしてください。

コードを見た人は気が付いたと思いますが、僕はN88系BASICのスタイルが未だに抜けません。

by イグトランス » 2005年11月07日(月) 21:27

おっとこれは失礼しました。
さてBytePtrにすれば動くかと思いましたがだめでした。
BytePtr型でだめならもはやバグかと思いバグ報告に書いておきました。

by 伯羽 » 2005年11月07日(月) 17:47

そういわれるとファイルから読み込んだほうがいいと思ったんですが
そっちのほうがめんどいんですよねぇ
ファイルの読込もできないですし(´A`)←が。

by hira » 2005年11月07日(月) 17:14

コード: 全て選択

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
当方の環境では、このコードがエラーになりました。

コード: 全て選択

Dim Expression[ELM(3)] = [0, 1, 2] As Long
これはエラーにならないことから、String型は(仕様なのか未対応なのかは不明ですが)初期値の設定ができないものと思われます。
対策としては…地道に代入するしかないでしょうね(^^;

by 伯羽 » 2005年11月07日(月) 11:32

何も出力されませんでした。なにがおかしいんでしょう。・゚・(ノД`)・゚・。

コード: 全て選択

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
Dim RnS As Long

Sub Menu_SPEAKBTM_Click()
ShowWindow(hMenu,SW_HIDE)
ShowWindow(hMessage,SW_SHOW)
RANDOMIZE
RnS=Int(Rnd()*3+1)
SetDlgItemText(hMessage, MesBox, Expression[RnS])
End Sub
質問ばかりだからなんとか自己解決しようとがんばっているんですがヘルプの説明が自分的に足りなくて。。。
ほんとすみません。_|\○_

by イグトランス » 2005年11月07日(月) 11:23

ではこれでできると思います。
SetDlgItemText(hMessage, MesBox, Expression[RnS])

by 伯羽 » 2005年11月07日(月) 10:07

> N番目の表情に対応する発言はExpression[N]と書けば得られます。
乱数を利用してランダムにメッセージを表示しようといろいろがんばっているのですがうまくできません。(泣

コード: 全て選択

Dim RnS As Long
Dim RnMsg As String
RnS=Int(Rnd()*3+1)
RnMsg="Expression[" + RnS + "]"
SetDlgItemText(hMessage, MesBox, RnMsg)

出力結果
ression[]
できないってことは違ってるんですよね。。。(´・ω・`)
「Expression[]」を出そうとしてますし

by イグトランス » 2005年11月07日(月) 09:22

N番目の表情に対応する発言はExpression[N]と書けば得られます。
たとえばSetDlgItemText(hMessage, MesBox, Expression[0])とすればAngryと表示されるはずです。
(SetDlgItemTextはSetWindowText(GetDlgItem(とするのと同じです。)

by 伯羽 » 2005年11月07日(月) 08:57

SetWindowTextまではわかったのですが
そのEspression(?)の読み込み方がわかりません。

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String

Sub Menu_SPEAKBTM_Click()
SetWindowText(GetDlgItem(hMessage,MesBox),Expression)
ShowWindow(hMenu,SW_HIDE)
ShowWindow(hMessage,SW_SHOW)
End Sub

出力結果
、S

SPEAKBTM=話すボタンを押したとき
MesBox=スタティックテキスト

by イグトランス » 2005年11月06日(日) 23:31

> Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
これは以下と同等だと思ってください。

コード: 全て選択

Dim Expression[2] As String
Expression[0] = "Angry"
Expression[1] = "Enjoy"
Expression[2] = "Sad"
そのうち余裕が出来たらExpressionの要素数を大きくし、
ファイルからExpressionへ読み込むように改良することにすれば、
暫くはファイルからの読み込みをどうするかということを考えずに済みます。

つまり余計な部分を後回しにして先に主立った部分の作業に集中できます。(私がよくやる手です)

by 伯羽 » 2005年11月06日(日) 16:28

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
これの使い方がわからないのですが(;´A`)
教えていただけないでしょうか。

( ´゚д゚`)<うおおおおお?!!!

by 伯羽 » 2005年11月03日(木) 23:45

イグトランスさんが言ったとおりに通知にチェックして、
キャラをクリックしたらメニューが出てきてくれました!
ありがとうございます!

ページトップ