Format-String
Ein Format-String ist ein Template, mit dem Objekte sehr flexibel in einen String umgewandelt werden können.
Hierbei ist ein Format-String ein normaler String, welcher Platzhalter und Attribute enthält.
Ähnlich dazu sind Style-Strings, welche allerdings nur spezifisch für manche Typen verfügbar sind.
Platzhalter
Ein Platzhalter wird mit geschweiften Klammern definiert.
"{}"
In einem String können neben anderen Zeichen beliebig viele Platzhalter eingebaut werden.
"My dog {} runs {} through {}."
Mit der Funktion ".fill" lassen sich diese Platzhalter mit Werten füllen:
Print "My dog {} runs {} through {}.".fill( "Bruno", "happily", "the garden" )
Attribute
Zwischen den geschweiften Klammern können verschiedene Attribute übergeben werden. Hierbei wird einerseits die "Zelle" definiert, in die der String eingefügt werden soll. Zusätzlich ist es möglich, Typ-Spezifische Attribute zu übergeben.
Der Aufbau ist hierbei:
{ Zell-Attribute:Typ-Attribute }
Definition einer Zelle
Eine Zelle wird nach nachfolgendem Muster aufgebaut, wobei nur benötigte Formatierungen angegeben werden:
- Feld-Länge
- Überlauf (! = versteckt, ? = anzeigen)
- Ausrichtung (< = links, > = rechts, ^ = zentriert)
- Typ
Hier die Definition einer Zelle mit 15 Zeichen, wobei der Text zentriert wird:
"{15^}"
Zell-Typ
Folgende Typen stehen hier zur Verfügung:
i | Int | Ganzzahl | Rechts |
d | Dec | Dezimalzahl | Rechts |
c | Char | Character | Links |
s | Str | String | Links |
b | Bool | Wahrheitswert | Links |
t | Type | Typ | Links |
Wird kein Typ angegeben, so wird entweder der Objekt-Typ oder "s" für String verwendet.
Hier z.B. wird ein Objekt in eine Ganzzahl umgewandelt und innerhalb von 5 Zeichen rechtsbündig ausgerichtet:
"My Number is {5i}"
Bei nachfolgendem Beispiel wird der übergeben String wie folgt formatiert:
- Genau 5 Zeichen breit
- Links ausrichten
- Objekt in eine Ganzzahl umwandeln
Print "|{5!<i}|".fill("123.45")
Spezifische Attribute
Abhängig vom gewählten Typ, welcher explizit festgelegt werden muss, können noch Typ-Spezifische Attribute übergeben werden. Hierzu wird an die Zelldefinition ein Doppelpunkt angefügt und die entsprechenden Attribute angehängt.
Hier wird ein Objekt als getrimmter String und innerhalb von doppelten Anführungszeichen ausgegeben.
"{s:t2}"
String
t | Trimme Leerzeichen, Tabulator und Zeilenumbrüche |
u | Großbuchstaben |
l | Kleinbuchstaben |
c | Der erste Anfangsbuchstabe groß |
C | Der Anfangsbuchstabe jeden Wortes groß |
e | Backslash und das Sonderzeichen 0 (EOF) werden mit einem Backslash maskieren |
E | Alle Sonderzeichen mit Backslash maskieren |
r | Den Backslash vor Sonderzeichen entfernen |
h | HTML-Special-Chars in HTML-Entity umwandeln |
H | Alle möglichen Zeichen in HTML-Entity umwandeln |
d | HTML-Entity's in reguläre Zeichen umwandeln |
1 | Mit einfachen Anführungszeichen umgeben, Anführungszeichen im String werden mit Backslash maskiert. |
2 | Mit doppelten Anführungszeichen umgeben, Anführungszeichen im String werden mit Backslash maskiert. |
3 | Mit einfachen Anführungszeichen umgeben, Anführungszeichen im String werden verdoppelt (z.B. für SQL) |
4 | Mit doppelten Anführungszeichen umgeben, Anführungszeichen im String werden verdoppelt (z.B. für SQL) |
Character
u | Großbuchstaben |
l | Kleinbuchstaben |
Integer
+ | bei positiven Zahlen wird ein '+' davor ausgegeben. |
Dezimal
+ | bei positiven Zahlen wird ein '+' davor ausgegeben. |
0 | Zahl auf Ganzzahl runden |
1 bis 9 | Anzahl der Dezimal-Stellen |
Bool
u | Großbuchstaben |
l | Kleinbuchstaben |
c | Anfangsbuchstabe groß |