Sprach-Konstrukte / Format-String

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:

  1. Feld-Länge
  2. Überlauf (! = versteckt, ? = anzeigen)
  3. Ausrichtung (< = links, > = rechts, ^ = zentriert)
  4. 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ß
- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €