Formatstring | Der Formatstring kann Platzhalter (Formatbezeichner, Genauigkeitsangabe) für den erzeugten Ausgangsstring enthalten. Die Bezeichner legen fest, wie der Ausgangsstring dargestellt werden soll. Mit Hilfe des Formatstrings kann der erzeugte String entsprechend den jeweiligen Anforderungen formatiert werden.Der Formatstring verwendet folgende Syntax: {0[:format_specifier][precision]}
(Die geschweiften Klammen müssen angegeben werden. Optionale Parameter stehen in eckigen Klammern.)
Numerische Formatbezeichner
In der folgenden Tabelle sind die verfügbaren numerischen Formatbezeichner aufgeführt. Zu jedem Bezeichner finden Sie Beispiele für die jeweils erzeugten Ausgangsstrings (eine Beschreibung der Genauigkeitsangabe finden Sie im Anschluss an diese Tabelle):
Formatbezeichner | Beschreibung | Beispiele |
'{0}' oder '{0:I}' oder '' | Standardwerte werden verwendet (siehe "Gültige Formatbezeichner und Standardformatbezeichner" unten). Die IEC-Form des Datentyps wird erzeugt. | TO_STRING(BYTE#16#FF, '');(* liefert '16#FF' *)
TO_STRING(lint#-1234567890123456789, '{0}');(* liefert '-1234567890123456789' *)
TO_STRING(real#1.23456789E+015, '{0:I}');(* liefert '1.234568E+15' *) |
'd', 'D', 'D8', 'D16' | Dezimale Ganzzahl.Konvertiert den Eingangswert in einen String aus Dezimalzahlen (0-9). Bei einem negativen Wert wird dem String ein Minuszeichen vorangestellt. | TO_STRING(BYTE#16#FF, '{0:d}'); (* liefert '255' *)
TO_STRING(BYTE#16#FF, '{0:d}'); (* liefert '255' *)
TO_STRING(BYTE#16#FF, '{0:D8}'); (* liefert '00000255' *)
TO_STRING(UDINT#4294967295, '{0:D16}'); (* liefert '0000004294967295' *) |
'e', 'E', 'E10', 'e4' | Gleitpunktzahl Exponential.Konvertiert den Eingangswert in einen String in Exponentialschreibweise mit dem Buchstaben e oder E (z.B. 1.23E+01) vor dem Exponenten.Bei Exponenten <= 99 ist der Exponent zweistellig; andernfalls dreistellig. | TO_STRING(REAL#12.123456789, '{0:e}'); (* liefert '1.212346e+01' *)
TO_STRING(REAL#12.123456789, '{0:E}'); (* liefert '1.212346E+01' *)
TO_STRING(LREAL#-12.123456789, '{0:E10}'); (* liefert '-1.2123456789E+01' *)
TO_STRING(LREAL#-12.123456789, '{0:e4}'); (* liefert '-1.2123e+01' *) |
'f', 'F', 'F6', 'f4' | Gleitkommazahl.Konvertiert den Eingangswert in einen String im Festkomma-Zahlenformat (z.B. 12.1256). Bei einem negativen Wert wird dem String ein Minuszeichen vorangestellt.Standard: 6 Dezimalstellen nach dem Punkt. | TO_STRING(REAL#12.123456789, '{0:F}'); (* liefert '12.123457' *)
TO_STRING(REAL#12.123456789, '{0:F}'); (* liefert '12.123457' *)
TO_STRING(LREAL#-12.123456789, '{0:F6}'); (* liefert '-12.123457' *)
TO_STRING(LREAL#-12.123456789, '{0:f4}'); (* liefert '-12.1235' *) |
'x', 'X', 'x8', 'X8' | Hexadezimale Ganzzahl.Konvertiert den Eingangswert in einen String von Hexadezimalzahlen. | TO_STRING(WORD#16#FFFF, '{0:x}'); (* liefert 'ffff' *)
TO_STRING(WORD#16#FFFF, '{0:X}'); (* liefert 'FFFF' *)
TO_STRING(WORD#16#FFFF, '{0:x8}'); (* liefert '0000ffff' *)
TO_STRING(WORD#16#FFFF, '{0:X8}'); (* liefert '0000FFFF' *) |
Zeichen-Formatbezeichner
In der folgenden Tabelle sind die verfügbaren Zeichen-Formatbezeichner mit entsprechenden Beispielen für den erzeugten Ausgangsstring aufgeführt:
Formatbezeichner | Beschreibung | Beispiele |
'c', 'C' | Einzelnes Zeichen.Konvertiert den Eingangswert in ein einzelnes Zeichen (einschließlich Sonderzeichen). Die Konvertierung erfolgt auf Basis der ASCII-Kodierung.Der Eingangswert muss vom Datentyp BYTE, WORD, DWORD oder LWORD sein. | TO_STRING(BYTE#65, '{0:C}'); (* liefert 'A' *)
TO_STRING(WORD#16#3A, '{0:C}'); (* liefert‘ ':‘ *)
TO_STRING(DWORD#16#40, '{0:C}'); (* liefert '@' *)
TO_STRING(LWORD#16#61, '{0:C}'); (* liefert 'a' *)
TO_STRING(BYTE#7, '{0:c}'); (* liefert '', da Ausgangswert ein Steuerzeichen wäre *) |
Zeit-Formatbezeichner
In der folgenden Tabelle sind die verfügbaren Formatbezeichner für Datum und Uhrzeit aufgeführt. Zu jedem Bezeichner finden Sie Beispiele für die jeweils erzeugten Ausgangsstrings (eine Beschreibung der Genauigkeitsangabe finden Sie im Anschluss an diese Tabelle):
Formatbezeichner | Beschreibung | Beispiele |
'{0}' oder {0:I} oder '' | Standardwerte werden verwendet (siehe "Gültige Formatbezeichner und Standardformatbezeichner" unten). Die IEC-Form des Datentyps wird erzeugt. | TO_STRING(TIME#2s, ''); (* liefert 'T#2s' *)
TO_STRING(LTIME#2s, '{0}'); (* liefert 'LT#2s' *)
TO_STRING(LDATE#2007-10-05, '{0:I}'); (* liefert 'LD#2007-10-05' *)
TO_STRING(LTOD#09:07:01.123456789, ''); (* liefert 'LTOD#09:07:01.123_456_789' *)
TO_STRING(LDT#2012-10-03-16:06:07.123456789, '{0:I}'); (* liefert 'LDT#2012-10-03-16:06:07.123_456_789' *) |
'y', 'yy', 'yyy', 'yyyy' | Liefert das Jahr des Datumwertes. | TO_STRING(LDATE#2007-10-05, '{0:y yy yyy yyyy}'); (* liefert '7 07 2007 2007' *) |
'M', 'MM', 'MMM', 'MMMM' | Liefert den Monat des Datumwertes als numerischen Wert (1 bis 12) oder als Zeichenfolge (vollständiger Name oder Kurzform). | TO_STRING(LDATE#2007-10-05, '{0:M MM MMM MMMM}'); (* liefert '10 10 Oct October' *) |
'd', 'dd', 'ddd', 'dddd' | Liefert den Tag des Monats des Datumwertes als numerischen Wert (1 bis 31) oder als Zeichenfolge (vollständiger Name oder Kurzform). | TO_STRING(LDATE#2007-10-05, '{0:d dd ddd dddd}'); (* liefert '5 05 Fr Friday' *) |
'h', 'hh', 'H', 'HH' | Liefert die Stunde des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY) im 24-Stunden- oder 12-Stunden-Format. | TO_STRING(LDT#2012-10-03-16:06:07.123456789, '{0:h hh H HH}'); (* liefert '4 04 16 16' *) |
'm', 'mm' | Liefert die Minuten des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY). | TO_STRING(LDT#2012-10-03-16:06:07.123456789, '{0:m mm}'); (* liefert '6 06' *) |
's', 'ss' | Liefert die Sekunden des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY). | TO_STRING(LDT#2012-10-03-16:06:07.123456789, '{0:s ss}'); (* liefert '7 07' *) |
'f', 'ff', 'fff', 'ffff' | Liefert die Nachkommastellen einer Sekunde des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY). | TO_STRING(LTOD#09:07:01.123456789, '{0:f ff fff ffff}'); (* liefert '1 12 123 1234' *) |
'F', 'FF', 'FFF', 'FFFF' | Liefert die Nachkommastellen ohne Nullen einer Sekunde des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY). | TO_STRING(LTOD#09:07:01.123456789, '{0:F FF FFF FFFF}'); (* liefert '1 12 123 1234' *) |
'{0:hh:mm:ss.fff}' | Liefert das vollständige Datum ohne Mikrosekunden und Nanosekunden des Datum-Zeit-Wertes (LDATE, LDATE_AND_TIME und LTIME_OF_DAY). | TO_STRING(LTOD#09:07:01.123456789, '{0:hh:mm:ss.fff}'); (* liefert '09:07:01.123' *) |
Genauigkeit
Die optionale Genauigkeitsangabe ist eine Dezimalzahl (ohne Vorzeichen), die direkt auf den Formatbezeichner folgt. Der Wert legt fest, mit welcher Genauigkeit der Eingangswert konvertiert werden soll. Die Genauigkeitsangabe wirkt sich unterschiedlich für die verschiedenen Formatbezeichner aus.
Formatbezeichner | Genauigkeit |
'd', 'D', 'x', 'X' | Mindestanzahl von Ziffern für die resultierende Zeichenfolge. Bei Bedarf werden links von der Zeichenfolge Nullen ergänzt, bis das Ergebnis die durch den Genauigkeitswert vorgegebene Anzahl an Ziffern enthält.Beispiel:
TO_STRING(BYTE#16#FF, '{0:D8}'); (* liefert '00000255' *) |
'e', 'E', 'f', 'F' | Anzahl von Ziffern nach dem Dezimaltrennzeichen.Standard: 6 Ziffern nach dem Dezimaltrennzeichen.Beispiel:
TO_STRING(LREAL#-12.123456789, '{0:E4}'); (* liefert '-1.2123E+01' *) |
Gültige Formatbezeichner und Standardformatbezeichner
Die folgende Tabelle zeigt die gültigen Formatbezeichner und Standardformatbezeichner für die verschiedenen Datentypen der am Eingang anliegenden Werte. Das Standardformat wird bei leerem Formatstring '', leerem Platzhalter '{0}' oder dem IEC-Format '{0:I}' verwendet.
Eingangsdatentyp | Gültige Formate | Standardformat |
SINT, INT, DINT, LINT | {0:D}, {0:X}, {0:I} | {0:D} |
USINT UINT UDINT | {0:D}, {0:X}, {0:I} | {0:D} |
BYTE, WORD, DWORD, LWORD | {0:C}, {0:D}, {0:X}, {0:I} | 16#{0:X} |
REAL, LREAL | {0:D}, {0:E}, {0:F}, {0:I} | {0:E} |
TIME | {0:D}, {0:X}, {0:I} | T#{0:hh}:{0:mm}:{0:ss}.{0:fff}s(Leerstellen am Anfang und Ende werden gelöscht) |
LTIME | {0:D}, {0:X}, {0:I} | LT#{0:hh}:{0:mm}:{0:ss}.{0:fff}_{us}_{ns}s(Leerstellen am Anfang und Ende werden gelöscht) |
LDATE | {0:D}, {0:X}, {0:I} | LD#{0:yyyy}-{0:MM}-{0:dd} |
LTOD | {0:D}, {0:X}, {0:I} | LTOD#{0:hh}:{0:mm}:{0:ss}.{0:fff}_{us}_{ns} (µs und ns nur für Standardformat) |
LDT | {0:D}, {0:X}, {0:I} | LDT#{0:yyyy}-{0:MM}-{0:dd}-{0:hh}:{0:mm}:{0:ss}.{0:fff}_{us}_{ns} (µs und ns nur für Standardformat) |
|