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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1104
Sutoratosu変数の初期化7解決


Sutoratosu

リンク

2009/11/4(Wed) 00:48:07|NO.28673

使用した全ての変数を終了させずに0もしくは""にする方法はありませんか。



この記事に返信する


GENKI

リンク

2009/11/4(Wed) 00:50:21|NO.28674

使用した全ての変数に0もしくは""を代入する。
配列変数の場合は、dimかsdimで配列を割り当てなおすのも手。



Sutoratosu

リンク

2009/11/4(Wed) 01:10:13|NO.28675

>使用した全ての変数に0もしくは""を代入する。
だと変数を20個使用しているので困るんですよね……



GENKI

リンク

2009/11/4(Wed) 01:24:09|NO.28676

20個程度なら処理速度に影響はないでしょう。
何がどう困るんですか?



Sutoratosu

リンク

2009/11/4(Wed) 01:33:03|NO.28677

変数が多すぎて管理できないんです。
私の責任ですよね……
そういう命令ってないのですか?



窓口

リンク

2009/11/4(Wed) 01:52:11|NO.28678

処理速度がどうしても気になるのならこんな方法もありだと思います。
この方法なら、数値型配列全要素を一つの命令で複製することも可能です。
(文字列の複製は難しいと思います。)

;数値型 #define a intV(0) #define b intV(1) #define c intV(2) #define d intV(3) #define e intV(4) #define f intV(5) #define g intV(6) #define h intV(7) #define i intV(8) #define j intV(9) ;文字列型 #define k strV(0) #define l strV(1) #define m strV(2) #define n strV(3) #define o strV(4) #define p strV(5) #define r strV(6) #define s strV(7) #define t strV(8) #define u strV(9) ;変数初期化の為のマクロ #define BffCls dim intV , 10 : sdim strV , 100 , 10 ;------------------------------------- ;変数確保 BffCls ;代入 a = 100 : b = 200 : c = 300 ;表示 mes a : mes b : mes c ;初期化 BffCls mes a : mes b : mes c

あるいは変数を全て初期化するサブルーチンを作っておいて、初期化したい時に
gosub でジャンプするとか?



Sutoratosu

リンク

2009/11/4(Wed) 02:02:33|NO.28679

変数を全て初期化するサブルーチンを作っておくことにしました。
ありがとうございました。



SYAM

リンク

2009/11/4(Wed) 02:47:46|NO.28681

こんなスクリプトを書いたとして…

a=1 b=2 c=3 d=4 mes a mes b mes c mes d


dup命令で、変数を、配列変数の要素の「別名」だったことにします。
こうすると、たとえば変数 a を、 val(0)とも書けるようになります。


dim val,4 dup a,val(0) dup b,val(1) dup c,val(2) dup d,val(3) a=1 b=2 c=3 d=4 mes a mes b mes c mes d repeat 4:val(cnt)=0:loop mes a mes b mes c mes d

元のスクリプトの部分には手を加えずに、ただの変数を配列として扱えるようになっていますね。



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