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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0310
Tommy有効桁数の表示6解決


Tommy

リンク

2008/3/10(Mon) 23:36:07|NO.14056

日々活用させて頂き,感謝します.
少しながら,自力で解決できるようになりましたが,
まだまだ知識不足があるので,質問させて頂きます.

下記のようにある変数を計算した数値を右そろえで
表示させたいのですが,いい方法はないでしょうか?

a=123456, b=12345, c=1234

"\\"+ a
"\\"+ b
"\\"+ c

<実行例>
\123456
\12345
\1234


<希望>
\123456
\12345
\1234

posで位置を指定できますが,数値の桁数によって,
ずれてしまいます.これは,計算された各値の桁数により,
条件をつけて位置を変更しないといけないのでしょうか?

もし,簡単にできる関数があれば,どなたか教えて頂きたく
お願いします.



この記事に返信する


begriff

リンク

2008/3/10(Mon) 23:58:43|NO.14057

ええと 実行例 と 希望が 一致しているんですけど
多分スペースが無視されてしまったのでしょうね。
<pre>でくくってください。



ANTARES

リンク

2008/3/11(Tue) 00:25:01|NO.14058


a=123456,12345,1234 repeat 3 mes strf("%6d",a(cnt)) loop



ANTARES

リンク

2008/3/11(Tue) 02:07:17|NO.14074

 あ、「\」をつけるのを忘れていました(^_^;;

mes strf("\\%6d",a(cnt))



As

リンク

2008/3/11(Tue) 02:27:35|NO.14076

この程度のことなら、ソースをじっくり見たほうが理解が早いと思うので、
ソースを作成しました。どんなソースコードでも使えるように設計したので
わかりにくいかもしれませんが^^;




//若干訂正 #module #defcfunc max_word_length array pint dim ms foreach pint dupptr ts, pint(cnt), 8, 4 if ms<strlen(str(ts)) : ms = strlen(str(ts)) loop return ms #defcfunc GetSpaceArea int value, int max_word_length_value,int maxsize if maxsize=0{ sdim ms, 256 }else{ sdim ms, maxsize } memset ms, ' ', max_word_length_value-strlen(str(value)), 0 return ms #global a=123456 : b=12345 : c=1234 : d=12345678 maxlength = varptr(a),varptr(b),varptr(c),varptr(d) spacesize = max_word_length(maxlength) pos 20,20 mes GetSpaceArea(a,spacesize)+"\\"+ a mes GetSpaceArea(b,spacesize)+"\\"+ b mes GetSpaceArea(c,spacesize)+"\\"+ c mes GetSpaceArea(d,spacesize)+"\\"+ d



Tommy

リンク

2008/3/11(Tue) 12:35:29|NO.14083

どもANTARESさん,Asさん,
ありがとうございました.
作成中のものに無事組み込めそうです.

begriffさん
いれ忘れでした.
実行例と希望が同じでびっくり. 皆さん,内容をくみ取っていただき感謝です.



As

リンク

2008/3/11(Tue) 20:11:54|NO.14088

ただ組み込むだけでなく、ちゃんとコードの仕組みにも目を通すようにしてくださいね(b^-



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