文字列を6桁で返すには?

解決


みずき  2006-03-16 01:10:41  No: 20504

いつもお世話になっております。

やりたい事としては、以下の通り。

データセットに入っている文字(だけど中身は数値)を
前ゼロ詰の6桁にしたい。

ようはデータセットに53と入っていたら
000053
3512と入っていたら
003512
と返って来て欲しいです。

Format関数で出来ないものかいろいろ模索してみたのですが、
うまくいかなったので質問させてください。
初歩的な質問で申し訳ありません。


初歩的な説明不足  2006-03-16 01:14:42  No: 20505

何をしたいのか意味不明。一体どこに返すのか?


igy  2006-03-16 01:21:35  No: 20506

これでどうです?

procedure TForm1.Button1Click(Sender: TObject);
var
    i: integer;
    S: String;
begin
    i := 53;
    S := Format('%6.6d', [i]);
    MessageDlg(S, mtInformation, [mbOk], 0);
end;


deldel  2006-03-16 01:22:40  No: 20507

Format('%.6d', [i]);
詳しくはヘルプの「形式文字列」をよ〜く読みましょう。


みずき  2006-03-16 01:22:40  No: 20508

説明不足で申し訳ありません。

ツリービューに登録しているのですが、
(ツリービューに登録する為の関数が用意されています)
そのツリービューの関数に渡す時についでに変換出来ないか。
と考えているのです。

関数側に渡す時に例えばですが、
Proc_CDS_TreeAdd(1,
                CDS_GetData.FieldByName('deta1).AsString,
                CDS_GetData.FieldByName('deta2').AsString,
                CDS_GetData.FieldByName('deta3').AsString,
                CDS_GetData.FieldByName('deta4').AsString
                );
が現在の形として、
Proc_CDS_TreeAdd(1,
                Format('%6s',[CDS_GetData.FieldByName('deta1).AsString]),
                CDS_GetData.FieldByName('deta2').AsString,
                CDS_GetData.FieldByName('deta3').AsString,
                CDS_GetData.FieldByName('deta4').AsString
                );
というような感じで渡せば、
関数側で受け取れますよね?
わかりにくくて申し訳ありません。。。


みずき  2006-03-16 01:30:28  No: 20509

連続カキコ申し訳ありません。

igyさんとdeldelさんに教えて頂いた方法も試したのですが、
「書式文字列'%.6d'は正しくないか引数の型と一致しません」
と出ます。

これは、データセットの中身が文字型だからだと思うのですが...
数値型に一度変換したとして、
000053
↑みたいな値は返ってくるのでしょうか...
ちょっと試してみます。


みずき  2006-03-16 01:37:47  No: 20510

先の件、試してみたところ、
Format('%.6d',[StrtoInt(CDS_GetData.FieldByName('data1').AsString)]),
という内容で、
000053
というような内容で返ってきました。

そもそも、数値なんだから前0埋め出来ないんじゃないの?
(000053にしてもまた53に戻ると思ってました;)
と思い、試していませんでした。
申し訳ありませんでした。ありがとうございます。


Ru  2006-03-16 02:11:07  No: 20511

解決していますが

FormatFloat('000000', 53)

とかでもいけるはずです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加