〜 テキスト 〜
桁揃えを行うstrf命令

HSP3から、書式を指定することができるstrf関数が追加されました。
この関数を使うと、指定桁数に満たない場合に前ゼロを付けて表示桁数を揃えることができます。
HSP2でも同様に、表示位置を揃えるための命令を追加してみましょう。
下記サンプルモジュールは、strf命令に揃えたい値と桁数を指定することで、refstrに結果値を返します。
ちなみに、HSP3以降にあるstrf関数は、前ゼロを付けることだけが出来るわけではありません。
機能についてはstrf関数の説明をご覧ください。
サンプルモジュールは前に付ける文字はゼロ以外に、空白を指定することも可能です。
もし、何も指定しなければ(空文字指定なら)、ゼロを付けるようにしています。
	

strf 対象値, 埋める文字, 桁数
対象値書式設定する数値、または数値型変数を指定する。
埋める文字桁数不足の際に、前に埋める文字を指定する。
桁数揃える桁数を指定する。但し、対象値が指定桁数より多くても多いままとなる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#module
#deffunc strf int, str, int
	mref value, 0 : mref schr, 33 : mref keta, 2
	mref rstr, 65
	rstr = "" + value
	s = schr + "0" : strmid s, s, , 1
	strlen len, rstr
	if len >= keta : return
	repeat keta - len
		rstr = s + rstr
	loop
	return
#global

	data = 1, 22, 333, 4444, 55555, 666666, 7777777, 88888888, 999999999
	repeat 9
		strf data.cnt, "0", 7 // '0'を付けて7桁に揃える
		pos  10, cnt * 20 + 10 : mes data.cnt
		pos 120, cnt * 20 + 10 : mes "→"
		pos 170, cnt * 20 + 10 : mes refstr
		strf data.cnt, "_", 10 // '_'を付けて10桁に揃える
		pos 280, cnt * 20 + 10 : mes refstr
		strf data.cnt, " ", 9 // ' 'を付けて9桁に揃える
		pos 400, cnt * 20 + 10 : mes refstr
	loop
	stop