Hauptmenü
Home
Delphi
C# / .NET
Freepascal
Firebird
OPF
Tutorials
Tipps und Tricks
Links
Suche
Impressum
Format-Strings (Zeichenketten formatieren) PDF E-Mail
Geschrieben von Lemmy   
Sonntag, 19. Februar 2006
Worum es geht:
Mit Format-Strings kann man in eine Zeichenkette beispielsweise bestimmte Zahlenwerte sehr komfortabel einfügen.
Beispiel zur Verdeutlichung: Folgender Satz soll in ein Editfeld eingefügt werden:
"In der Liste sind x Einträge vorhanden und davon ist der y. Eintrag markiert."
Wobei x die Anzahl der Listeneinträge und y der Index des markierten Eintrages sind.Herkömmlich könnte man es so gestallten:

Edit1.Text:='In der Liste sind '+IntToStr(ListBox1.Items.Count)
            +'Einträge vorhanden und davon ist der '
            +IntToStr(ListBox1.ItemIndex)
            +' .Eintrag markiert.';


Mit einem Format-String geht es jedoch viel übersichtlicher:

Edit1.Text:=Format('In der Liste sind %d Einträge vorhanden und davon ist'+
'der %d. Eintrag markiert.',[ListBox1.Items.Count, ListBox1.ItemIndex]);

Dabei sind die %-Zeichen eine Art Platzhalter für den Zahlenwert. Die einzelnen Zahlenwerte sind am Ende in eckigen Klammern aufgeführt.
Ausführliche Beschreibung von Format-Strings:
Dieser Platzhalter kann auch Format-Spezifizierer (FS) genannt werden. Er kann ziemlich komplex sein. Hier der Formale Aufbau:

% [:] [-] [Breite] [.] Typ

Ein FS beginnt immer mit %. Danach folgen optionale Argumente, die also weggelassen werden können. Am Ende wird immer der Umwandlungstyp angegeben.
Übersicht der optionalen Argumente:
: Index-Zeichen (Nummerierung)
- Linksausrichtungs-Zeichen
xxx Breite (welche feste Breite der String bekommen soll). Wichtig für Zahlendarstellung.
.xxx Genauigkeit (auf wie viel Stellen eine Kommazahl nach dem Komma angezeigt werden soll)

 

Übersicht der Umwandlungstypen:
d Dezimal. Zur Darstellung von Ganzzahlen. Es ist auch eine Genauigkeit nach dem Komma angebbar - gegebenenfalls werden fehlende Stellen nach dem Komma durch Nullen aufgefüllt.
u Vorzeichenlose Ganzzahlen. Sonst genauso wie d.
e Kommazahlen in Exponenten-Schreibweise. Z. B.: -5,31*10². Format: -ddd.ddd...Eddd
f Kommazahlen. Z. B.: 5,45. Format: ddd.ddd... Die Zahl nach dem Punkt gibt die Stellenzahl nach dem Komma an, bis zu der die Zahl angezeigt werden soll.
g Allgemeine Darstellung von Kommazahlen. Wert wird automatisch in Dezimalstring umgewandelt.
n Nummer. Für Kommazahlen. Ähnlich f aber der String beinhaltet mehrere Trennzeichen (Komma oder Punkt).
m Währung.
p Zeiger-Wert in hexadezimal.
s Zeichen, Zeichenkette oder PChar.
x Hexadezimale Ganzzahl.

Ein Zahlenbeispiel:
Kommazahl: Edit1.Text:=Format('%8.2f',[123.456]);

Setzt die Stringbreite auf 8 Zeichen (inklusive Komma und Nachkommastellen). Hat die Zahl weniger Stellen, so werden Leerzeichen vorne angefügt. Die 2 bewirkt die Anzeige von 2 Nachkommastellen. ist ein - vor der 8, so werden die Leerzeichen rechts angefügt.

Indexnutzung: Durch die Angabe eines Indexes können Argumente in beliebiger Reihenfolge und auch mehrmals angezeigt werden:
Edit1.Text:=Format('%d %d %0:d %1:d', [10, 20]);   //erzeugt: '10 20 10 20'

Format-Strings können in folgenden Routinen verwendet werden:

Format function
FormatBuf function
FmtStr procedure
StrFmt function
StrLFmt function
 
Weiter >