| 初めまして。 投稿者:LAGOUN 投稿日:2008/04/16(Wed) 07:01 No.4321 | |
|
 | 初めまして、早速ですが質問があります。 #include "hspda.as"
dim sc,10 ;スコアデータ sdim nm,30,10 ;元の名前データ sdim nm2,30,10 ;ソート後の名前データ alloc sd,1000 ;データ読みこみ書きこみ用バッファ
datamax=5
;データファイルのチェック ;存在する場合は読みこむ ;ない場合はこのスクリプト内のデータを使う
chdir exedir onerror 1 bload "tokuten.txt",sd ernum=err onerror 0
if ernum=12:goto *top1 ;12 is ファイルが無い
;読みこんだデータを配列に変換 notesel sd repeat datamax noteget a,cnt strmid b,a,0,8 ;数字部分 strmid c,a,8,30 ;30の部分は文字の最大値、とりあえず30文字 int b:sc.cnt=b nm.cnt=c loop goto *top2 *top1 sc.0=100:nm.0="薄味百" sc.1=7000:nm.1="薄味7千" sc.2=5000:nm.2="薄味五千" sc.3=200:nm.3="薄味二百" sc.4=9999:nm.4="薄味最大" *top2 gosub *name_sort ;本当はソートされたものが入っているはずだけど一応ソート gosub *name_put ;内容を表示
mes " "
testsc=300 ;試しに得点を300としてやってみます mes "得点"+testsc
;最小値と比較 if sc.4>testsc:goto *name_end ;最小値より小さい場合は終了
mes "名前を入力してください" nowname="" input nowname,150,25 button "OK",*name_add stop
*name_add
cls
sc.4=testsc nm.4=nowname gosub *name_sort ;最終的にソート gosub *name_put ;表示
;ここから保存 sd="" repeat datamax s=sc.cnt str s,8 ;数字の最大桁数 sd+=s+nm.cnt+"\n" loop ;mes sd strlen sdl,sd bsave "tokuten.txt",sd,sdl stop
*name_end mes "ランキング5位以内に入りません。" stop
*name_put repeat datamax p=" "+sc.cnt+":"+nm.cnt mes p:loop return *name_sort sortval sc,1 ;数値により大きい順に repeat datamax sortget n,cnt nm2.cnt=nm.n loop repeat datamax nm.cnt=nm2.cnt loop return
stop
HSP教室に書いてあるスクリプトなのですが、 このスクリプトではHSP2では動作するのですが、 HSP3では動作できません。 (パラメータが無効ですとなります) (ちなみにskipper→onerrorに変えました) 大変恥ずかしい質問なのですが、よろしくお願いします。
PS いつもうすあじ様の本にはお世話になっております |
| Re: 初めまして。 うすあじ - 2008/04/18(Fri) 00:52 No.4322 | |
|
|
 | 書き込みありがとうございます。 HSP3用にすぐに直せるかなぁと思って、ちょっと試したところ結構書き換えが必要なようです。 時間があればもっとキレイに書き直したいんですが、しばらくは個人的に忙しいので、もうしわけないですが、文章部分を参考にして、ご自分で作ってください。 では、お元気です。 |
| Re: 初めまして。 LAGOUN - 2008/04/18(Fri) 06:05 No.4323 | |
|
|
 | ご返信ありがとうございます! 分かりました。スクリプトを参考にさせてもらって 自分で直してみたいと思います。そしていろいろ それを応用して自分のスクリプトで活用できるように 頑張りたいと思います |
|