HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1019
aoinoteselとnoteaddの使い方3解決


aoi

リンク

2008/10/19(Sun) 09:36:05|NO.20311

はじめまして。aoiです。HSP初心者です。
ランダムに出てくる数字に反応して、その反応時間と反応の正誤を測るスクリプトを
作っているのですが、文字列以外の変数もファイルに記録することは出来るのでしょうか。
notesel R.jとすると、mesR.jのところでエラーになってしまいます。
どなたか教えていただけますか。よろしくお願いします。

 〈pre〉mondaisuu = 1000
sdim R,20,mondaisuu
sdim correct,20,mondaisuu
screen 0 , 900, 600

cls

log = ""
notesel log
seitousuu = 0

dim R,mondaisuu

randomize
xx=1
repeat mondaisuu
x=rnd(9)
R.xx = x
xx=xx+1
loop

button "Start", *ready
stop
*ready
font "MS 明朝", 40 , 1
cls
mouse -1

i=0
*mon01
j = i
gosub *matu
pos 410,250
font "MS ゴシック", 45,
mes R.j

gosub *RTs
osu=""
repeat
stick res
if res&256 {
osu="T"
gosub *RTe
break
}
if res&512 {
osu="F"
gosub *RTe
break
}
await 1: loop

notesel correct
notesel R.j
correct=""
;if R.j=0: correct="T": else correct="F"
if correct == osu {
seitousuu += 1
noteadd R.j+"\t"+correct+"\t○\t"+jikan
}
else {
noteadd R.j+"\t"+correct+"\t×\t"+jikan
}
if correct == osu {seitousuu += 1
noteadd correct+"\t○\t"+jikan
}
else {
noteadd correct+"\t×\t"+jikan
}
cls
i=i+1
if i<mondaisuu : goto *mon01
*owari
mouse
pos 100,100
font "MS 明朝",32
mes "これで終わりです。"
mes " "
font "MS 明朝",12
mes "番号・回答・正誤・ミリ秒"

seitouritu = seitousuu*10000/mondaisuu
seisuu = seitouritu/100
syousuu = seitouritu\100
noteadd "正答率: "+seisuu+"."+syousuu+" %"
mes log
yy=gettime(0): yy=str(0)
mm=gettime(1): mm=str(2)
dd=gettime(3): dd=str(2)
hh=gettime(4): hh=str(2)
mn=gettime(5): mn=str(2)
ss=gettime(6): ss=str(2)

itu = "log"+yy+mm+dd+"-"+hh+mn+ss+".txt"

mes "保存ファイル名は"
mes itu
mes " "
bsave itu,log

button "End", *owari2
stop
*owari2
end
*matu
font "MS 明朝", 48,
pos 410,250
mes "+"
wait 100
cls
wait 50
return
*RTs
hajime = 0
ji = 0
hun = 0
byou = 0
miri = 0
ji=gettime(4)
hun=gettime(5)
byou=gettime(6)
miri=gettime(7)
hajime = (hun*60000)+(byou*1000)+miri
return
*RTe
kokomade = 0
jikan = 0
jie = 0
hune = 0
byoue = 0
mirie = 0
jie=gettime(4)
hune=gettime(5)
byoue=gettime(6)
mirie=gettime(7)

kokomade = (hune*60000)+(byoue*1000)+mirie
color 255 , 255 , 255
color 255 , 255 , 255
ji < jie ; kokomade =+ 3600000
jikan = kokomade - hajime
return
;--------------------END--------------------------------------------〈/pre〉



この記事に返信する


SYAM

リンク

2008/10/19(Sun) 10:31:56|NO.20314

>文字列以外の変数もファイルに記録することは出来るのでしょうか

できません。
noteload は文字列のみを扱うものです。

ただし、数字を文字で表したり、数字を数値に直したりはできます。


a="987654" b="-654321" c=6789 d=-9876 e=int(a) f=int(b) g=str(c) h=str(d) mes e mes f mes g mes h mes e+f mes g+h
ちゃんと数値が文字列になったり、文字列の数字が数値になったりしてますね。

または、bload,bsave命令で数値をファイルに書くこともできます。
この場合は、文字でなく数値のデータをそのままファイルに書き込むので、作ったファイルをメモ帳で確認したりとかはできませんし、note〜命令で作ったファイルと同じファイルに書き込むこともできません。(できたとしても、読み込む時にnote〜が誤動作する可能性があります。)



あまま

リンク

2008/10/19(Sun) 12:17:05|NO.20317

12行目の
dim R,mondaisuu

を消して 18行目の
R.xx = x
という箇所を
R.xx = str(x)

もしくは
R.xx = ""+x+""
などのように修正し
Rを文字列として扱うことで
一応動くようにはなるかと思います。

ついでに配列変数は0から始まるので
15行目の
xx=1

というところは
xx=0
などとしないと
最初の配列に何も入らないことになってしまいます。



aoi

リンク

2008/10/19(Sun) 19:35:52|NO.20336

迅速なご回答ありがとうございます。
ご指摘のとおり書き直して、bsave命令で記録できるようになりました。

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.