Home » Tipps & Tricks » Object Pascal » Strings » Format-Strings

Format-Strings

Die Format-Strings verwendet man, um einen formatierten String zu erhalten. Dieser String kann aus einem Gleitkomma, Integer und/oder einem anderen String generiert werden. Die Format-Strings finden meist in der Funktion ‚Format‘ Verwendung, die zwei Parameter erwartet. Der erste Parameter erwartet die Informationen zur Formatierung, der zweite die entsprechenden Quellen aus denen der String erstellt werden soll.Zur Verdeutlichung folgt jetzt erst mal ein Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
var
  Output: String;
begin
  Output:=Format('%10.4f',[123.123456]);
  Showmessage(Output);
end;

Es wird folgender Wert ausgegeben (Man beachte die Leerzeichen):

'  123,1235'
  • Für das Prozentzeichen (‚%‘) wurde die Zahl in den eckigen Klammern eingesetzt. Den Wert in den eckigen Klammern nennt man Argument.
  • Der Breitenbezeichner gibt die Mindestlänge an (’10‘). Sollte der resultierende String weniger Zeichen haben, wird dieser mit Leerzeichen aufgefüllt, wie dies in unserem Beispiel der Fall ist.
  • Die Genauigkeit beträgt in unserem Fall 4 Stellen hinter dem Komma.
  • Der Parameter ‚f‘ steht für Festkommastring; das Argument muss also vom Typ Single, Double oder Extended sein.

Allgemein kann man folgendes zu dem Format-Bezeichner sagen:
„%“ [index „:“] [„-„] [width] [„.“ prec] type

  • Argumentindex-Bezeichner (optional): [index „:“]
  • Angabe für die linksbündige Ausrichtung (optional): [„-„]
  • Breitenangabe (optional): [width]
  • Genauigkeitsangabe (optional): [„.“ prec]
  • Das Zeichen für den Konvertierungstyp: type

Im obigen Beispiel wurde für den Konvertierungstyp ‚f‘ eingesetzt, da Festkommastring resultieren sollte. Es folgt eine Liste für die unterschiedlichen Konvertierungstypen:

Konvertierungstyp Umwandlungstyp Argumentetyp
d Dezimalstring Integer-Typen
e Wissenschaftlicher String Gleitkomma-Typen
f Festkommastring Gleitkomma-Typen
g kürzester String (e oder f) Gleitkomma-Typen
n wie f mit Tausendertrennzeichen Gleitkomma-Typen
m Währungsstring Gleitkomma-Typen
p Pointer-String Pointer
s String String-Typen (Char, ShortString)
x Hexadezimalstring Integer

Weitere Informationen zum Thema Format-Strings finden Sie in der Online-Hilfe unter dem Stichwort „Format-Strings“ oder „Format (Funktion)“.
Zum Schluss noch einige Beispiele:

//mind. 20 Zeichen, 2 Kommastellen, Festkommatyp
Edit1.Text:=Format('%20.2f',[123.123456]);    '              123,12'

//mind. 3 Zeichen, Dezimaltyp
Edit1.Text:=Format('%3d',[123456]);           '123456'

//mind. 3 Zeichen, Währung (abhängig von dem eingestellten Währungsformat)
Edit1.Text:=Format('%3m',[123456.236]);       '123.456,24 ?'

//mind. 3 Zeichen, 2 Kommazahlen, Tausendertrennzeichen, Festkommatyp
Edit1.Text:=Format('%3n',[123456789.123456]); '123.456.789,12'

//s.o. nur mit vier Kommastellen
Edit1.Text:=Format('%3.4n',[123456789.12 3456]); '123.456.789,1235'

//String mit mind. 10 Zeichen
Edit1.Text:=Format('%10s',['String']);        '    String'

//Beispiel mehrerer Argumente in Verbindung mit einem zusätzlichen String
Format('Mein Name ist %s und ich bin %d Jahre alt',['Tom',20]);

Um ein Datum oder Zeitstempel zu Formatieren, nutzen Sie die Funktion FormatDateTime, die ähnlich funktioniert, wie die oben vorgstellte Format-Funktion. Die entsprechenden Argumente entnehmen Sie bitte der Onlinehilfe unter dem Stichwort FormatDateTime (Funktion).