Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Format-Strings %d zeigt keine führenden Nullen an


sahib - Mo 04.07.05 10:41
Titel: Format-Strings %d zeigt keine führenden Nullen an
Hallo.

In der Online-Hilfe zu Format-Strings heißt es:
Zitat:

d d Dezimal. Das Argument muß ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus Dezimalzahlen besteht. Wenn der Format-String einen Bezeichner für die Genauigkeit enthält, muß der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.



Delphi-Quelltext
1:
Item.Caption := Format('%3d. Eintrag', [EintragNr]);                    


Ok, aber bei mir füllt er nicht mit Nullen auf, sondern mit einem Leerzeichen. Wie kann ich ihm das abgewöhnen?

*EDIT* In den Ländereinstellungen unter Windows habe ich auch führende Nullen gewählt. Aber damit hängt das ja wohl nicht zusammen?

Christian


Sprint - Mo 04.07.05 10:52


Delphi-Quelltext
1:
Item.Caption := Format('%s. Eintrag', [FormatFloat('000', EintragNr)]);                    

Es gibt bestimmt noch elegantere Lösungswege...


Stefan.Buchholtz - Mo 04.07.05 11:00
Titel: Re: Format-Strings %d zeigt keine führenden Nullen an
user profile iconsahib hat folgendes geschrieben:
Hallo.

In der Online-Hilfe zu Format-Strings heißt es:
Zitat:

d d Dezimal. Das Argument muß ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus Dezimalzahlen besteht. Wenn der Format-String einen Bezeichner für die Genauigkeit enthält, muß der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.



Delphi-Quelltext
1:
Item.Caption := Format('%3d. Eintrag', [EintragNr]);                    


Ok, aber bei mir füllt er nicht mit Nullen auf, sondern mit einem Leerzeichen. Wie kann ich ihm das abgewöhnen?

*EDIT* In den Ländereinstellungen unter Windows habe ich auch führende Nullen gewählt. Aber damit hängt das ja wohl nicht zusammen?

Christian


Du hast die Breite auf 3 Zeichen gesetzt, nicht die Anzahl Ziffern.

So ist es richtig:


Delphi-Quelltext
1:
Item.Caption := Format('%.3d. Eintrag', [EintragNr]);                    


Stefan


sahib - Mo 04.07.05 13:39

@Stefan: Danke, genau das war es. Ja, lesen müsste man können.

@Sprint: Danke für Deine Antwort, so hatte ich das auch temporär gemacht. Wegen des eleganteren Weges fragte ich hier aber nochmal ;)


Christian