%%%d.%ddとは何ですか?

解決


でるでる  2006-03-10 22:03:40  No: 20449  IP: 192.*.*.*

delphiがよくわかっていない初心者です。
「%d」はわかるのですが「%%%d.%dd」とは何ですか?
ネットや本で調べてみてもわかりませんでした。どうぞ教えて下さい。

編集 削除
質問の意味ワカリマセン  2006-03-10 22:58:40  No: 20450  IP: 192.*.*.*

形式文字列?

編集 削除
HOta  2006-03-11 09:39:49  No: 20451  IP: 192.*.*.*

Formatの 形式文字列だと思うのですが、
形式指定子は %ですので、'%'を表すのは'%%'とします。
この場合、
Format('%%%d.%dd',[2,3])
だと、結果は'%2.3d'とでもなるのでしょうかね。

編集 削除
でるでる  2006-03-12 12:17:43  No: 20452  IP: 192.*.*.*

HOtasさん、ありがとうございます。
これは既に作られていた、コードですが、
数字をいれるようです。例えば、「1」を入れると「0001」や「001」
なるようです。

編集 削除
HOta  2006-03-12 13:41:06  No: 20453  IP: 192.*.*.*

「1」を入れると「0001」や「001」にするのなら、
Format('%.4d',[1])
Format('%.3d',[1])
ですね。

編集 削除
は?  2006-03-12 14:03:53  No: 20454  IP: 192.*.*.*

Format関数で、形式化した文字列を生成するために、その形式を返すための形式文字列。

> 数字をいれるようです。例えば、「1」を入れると「0001」や「001」
具体的なコードを示せ。

入れるってどこに入れるんだよ。
ソレダケジャ、ワカンネーヨ

編集 削除
でるでる  2006-03-12 16:26:19  No: 20455  IP: 192.*.*.*

>Format関数で、形式化した文字列を生成するために、その形式を返すための形式文字列。

そういうことなんですね、わかりました。
最初にコードを書けばよかったです、あせっていました。
  
a,b,e... integer
c,d  ... String

c := Format('%%%d.%dd',[a,b]);
d := Format(c,[e]);

aに4、bに1を代入
eに2を代入すれば
「0002.1」になるのですね。

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

編集 削除
HOta  2006-03-12 20:31:10  No: 20456  IP: 192.*.*.*

これは変ですね。dは整数値に対する形式文字で、整数に対しては、
'%2d'としか使えません。少数まで制御するなら、'%2.3f'の様な制御文字になります。このサンプルはこっていますが、全く間違っています。

編集 削除
書式  2006-03-12 20:57:52  No: 20457  IP: 192.*.*.*

>「0002.1」になるのですね。
整数ですよね?

>整数に対しては、'%2d'としか使えません
勘違いされてますね・・・整数でも使用できます
例えば "%4.3d" とした時は4桁の幅指定で3桁の精度指定となります
Format("[%4.3d]", [3]) は " 003"を返します(先頭はスペースが入っている)

編集 削除
おっと  2006-03-12 21:00:13  No: 20458  IP: 192.*.*.*

>Format("[%4.3d]", [3])
余分な[]が入ってました

編集 削除
HOta  2006-03-13 10:25:57  No: 20459  IP: 192.*.*.*

そうですね。勘違いしました。

編集 削除