Also, "überdimensioniert" finde ich Format eigentlich nicht, vor allem, wenn man mehrere Variablen darstellen möchte. Und nach genauem Durchlesen der Hilfe und etwas Übung geht das auch recht flott von der Hand.
Zitat von
Delphi 5-Hilfe:
Mit Format-Strings wird das Format für Formatierungsroutinen angegeben.
Kategorie
String-Formatierung
Beschreibung
Format-Strings, die an die Formatierungsroutinen für Strings übergeben werden, können zwei Arten von Objekten enthalten: literale Zeichen und Formatbezeichner. Literale Zeichen werden wörtlich in den resultierenden String kopiert. Formatbezeichner rufen Argumente aus der Argumentliste ab und weisen ihnen ein Format zu.
Formatbezeichner werden in der folgenden Form angegeben:
"%" [index ":"] ["-"] [width] ["." prec] type
Jeder Formatbezeichner beginnt mit dem Zeichen %. Auf das Prozentzeichen folgt eine der nachstehenden Angaben (in der aufgeführten Reihenfolge):
Ein optionaler Argumentindex-Bezeichner: [index ":"]
Eine optionale Angabe für die linksbündige Ausrichtung: ["-"]
Eine optionale Breitenangabe: [width]
Eine optionale Genauigkeitsangabe: ["." prec]
Das Zeichen für den Konvertierungstyp: type
In der folgenden Tabelle sind die verschiedenen Werte aufgeführt:
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.
u u Vorzeichenlose Dezimalzahl. Das Format "u" entspricht dem Format "d", allerdings enthält der resultierende String kein Vorzeichen.
e e Wissenschaftliche Notation. Das Argument muß ein Gleitkommawert sein. Der Wert wird in einen String mit der folgenden Form umgewandelt: "-d,ddd...E+ddd". Wenn es sich um eine negative Zahl handelt, beginnt der String mit einem Minuszeichen. Vor dem Dezimaltrennzeichen steht immer eine Ziffer.
Die Gesamtzahl der Stellen im Ergebnis-String (einschließlich der Ziffer vor dem Dezimalkomma) wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von 15 Stellen angenommen. Auf den Exponenten "E" im String folgen immer ein Plus- oder Minuszeichen und mindestens drei Stellen.
f f Fest. Das Argument muß ein Gleitkommawert sein. Der Wert wird in einen String mit der folgenden Form umgewandelt: "-ddd,ddd...". Wenn es sich um eine negative Zahl handelt, beginnt der String mit einem Minuszeichen.
Die Anzahl der Stellen nach dem Dezimalkomma wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von zwei Dezimalstellen verwendet.
g g Allgemein. Das Argument muß ein Gleitkommawert sein. Der Wert wird unter Verwendung des Formats Fest oder wissenschaftliche Notation in den kürzestmöglichen Dezimal-String umgewandelt. Die Anzahl der signifikanten Stellen im resultierenden String wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von 15 Stellen angenommen.
Nachfolgende Nullen werden aus dem resultierenden String entfernt. Ein Dezimaltrennzeichen wird nur bei Bedarf angezeigt. Für den resultierenden String wird das Festkommaformat verwendet, wenn die Anzahl der Stellen vor dem Dezimaltrennzeichen kleiner oder gleich der festgelegten Genauigkeit und der Wert größer oder gleich 0,00001 ist. In allen anderen Fällen wird die wissenschaftliche Notation benutzt.
n n Zahl. Das Argument muß ein Gleitkommawert sein. Der Wert wird in einen String mit der folgenden Form umgewandelt: "-d.ddd.ddd,ddd...". Das Format "n" entspricht dem Format "f", allerdings enthält der resultierende String Tausendertrennzeichen.
m m Währung. Das Argument muß ein Gleitkommawert sein. Der Wert wird in einen String umgewandelt, der einen Währungsbetrag darstellt. Die Steuerung der Konvertierung erfolgt mit Hilfe der globalen Variablen CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator und CurrencyDecimals. Diese Variablen werden mit den Einstellungen initialisiert, die in der Windows-Systemsteuerung in der Registerkarte Währung der Ländereinstellungen enthalten sind. Enthält der Format-String einen Genauigkeitsbezeichner, setzt dieser den Wert in der globalen Variablen CurrencyDecimals außer Kraft.
p p Zeiger: Das Argument muß ein Zeigerwert sein. Der Wert wird in einen String mit acht Zeichen, der den hexadezimalen Wert des Zeigers darstellt, konvertiert.
s s String. Das Argument muß ein Zeichen, ein String oder ein PChar-Wert sein. Der String bzw. das Zeichen wird anstelle des Formatbezeichners eingefügt. Wenn im Format-String ein Genauigkeitsbezeichner angegeben ist, bestimmt er die maximale Länge des resultierenden Strings. Ist das Argument ein String, der diese Maximallänge überschreitet, wird der String abgeschnitten.
x x Hexadezimal. Das Argument muß ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus hexadezimalen Stellen 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.
Konvertierungszeichen können beliebig in Klein- oder Großschreibung angegeben werden.
Bei allen Gleitkommaformaten wird das Zeichen für das Dezimal- bzw. das Tausendertrennzeichen aus den globalen Variablen DecimalSeparator und ThousandSeparator ausgelesen.
Die Bezeichner für Index, Breite und Genauigkeit können direkt durch Angabe eines Strings mit dezimalen Ziffern (z.B. "%10d") oder indirekt mit Hilfe von Sternchen (z.B. "%*.*f") angegeben werden. Im letzteren Fall wird das Argument, das in der Argumentliste auf das Sternchen folgt (es muß sich dabei um einen Integerwert handeln), als tatsächlicher Wert verwendet. Ein Beispiel:
Format('%*.*f', [8, 2, 123.456])
ist identisch mit
Format('%8.2f', [123.456]).
Der Breitenbezeichner legt die minimale Länge des Feldes für die Konvertierung fest. Ist der resultierende String kürzer als die minimale Feldlänge, wird er mit Leerzeichen aufgefüllt. Per Vorgabe werden die Leerzeichen vor dem Wert eingefügt, um eine rechtsbündige Ausrichtung zu erreichen. Enthält der Formatbezeichner jedoch einen Indikator für linksbündige Ausrichtung (vor dem Breitenbezeichner steht in diesem Fall ein Minuszeichen), werden die Leerzeichen nach dem Wert eingefügt und dieser linksbündig ausgerichtet.
Ein Indexbezeichner setzt den aktuellen Index der Argumentliste auf den angegebenen Wert. Der Index des ersten Arguments in der Liste hat den Wert 0. Durch die Verwendung von Indexbezeichnern kann dasselbe Argument mehrfach formatiert werden. Beispielsweise erzeugt "Format('%d %d %0:d %d', [10, 20])" den String '10 20 10 20'.
Die Format-Strings werden von den folgenden Routinen verwendet:
Format (Funktion)
FormatBuf (Funktion)
FmtStr (Prozedur)
StrFmt (Funktion)
StrLFmt (Funktion)