Promotic

Formátovací řetězec objektu PmFormat

Formát převodu mezi hodnotou a řetězcem.

Parametry řetězce jsou typu KeyVal, který je naplněn z hodnoty parametru sFormat metody SetFormat nebo CreatePmFormat.

Klíče společné všem typům:

Type:xx; - Typ hodnoty. Například "Type:Float;".
Float (přednastaveno) - reálné číslo
Int - celé číslo
Bool - logická hodnota (1/0)
String - textový řetězec
DateTime - Datum a čas
TimeSpan - Časové rozpětí
Len:nn - Celkový počet znaků bez LTxt a RTxt
pro číselné hodnoty včetně Sign, DSep, Group Například "Len:6;".
Viz: Kombinace klíčů Len, DLen, IfLong a Group.
-1 (přednastaveno) - neomezeno, pro Scan najít konec čísla
n - stanovený počet znaků
IfShort:nn - Co dělat když je hodnota kratší než Len. Například "Len:4;IfShort:2;".
0 (přednastaveno) - nedělat nic
1 - doplnit ZLEVA znakem mezera
2 - doplnit ZPRAVA znakem mezera
7 - pouze pro číselné hodnoty: doplnit zleva nulami, ale mezi znaménko a první cifru (pro ne číselné hodnoty jako 1)
IfLong:nn - Co dělat když je hodnota delší než Len. Například "Len:4;IfLong:2;".
Viz: Kombinace klíčů Len, DLen, IfLong a Group.
0 (přednastaveno) - nedělat nic, to znamená nechat delší
1 - ořez ZLEVA na délku Len
2 - ořez ZPRAVA na délku Len
4 - vyplnit znakem zadaným v IfLongPar na délku Len
5 - nahradí textem v IfLongPar
7 - pouze pro číselné hodnoty: vědecky format max do IfLongPar (pro ne číselné hodnoty jako 3)
IfLongPar:ss - Určuje znak(y) pro vyplnění k parametru IfLong. Například "Len:4;IfLong:5;IfLongPar:MyErr;".
ss - Znak(y)
pro IfLong:4; - znak kterým vyplnit (přednastaveno="", způsobí vyplnění znakem hvězdička "*")
pro IfLong:5; - náhradní text (přednastaveno="")
LTxt:ss - Text vlevo od hodnoty Například "LTxt:Hodnota ;".
Viz: Použití Radix a další klíče k naformátování hodnoty.
RTxt:ss - Text vpravo od hodnoty (pro Scan nesmí být RTxt uvnitř hodnoty). Například "RTxt:°C;".
Viz: Kombinace klíčů RTxt a DLen pro hodnotu typu Float.
Case:nn - Převod na velké/malé znaky (nepřevádí se znaky v LTxt a RTxt). Například "Case:2;".
Viz: Příklady pro typ String a další klíče k naformátování hodnoty.
0 (přednastaveno) - nechat beze změny
1 - UpperCase - na velké znaky
2 - LowerCase - na malé znaky

Klíče společné všem číslům:

Radix:nn - Jiná číselná soustava (pro typ Int). Například "Type:Int;Radix:16;".
Viz: Použití Radix a další klíče k naformátování hodnoty.
2 - binární
8 - oktálová
10 (přednastaveno) - decimální
16 - hexadecimální, hexa znaky budou malé, ale lze je zvětšit pomocí Case:1;
Sign:nn - Jak zobrazovat znaménko plus. Například "Sign:1;".
Viz: Použití Sign k zarovnání plusových a mínusových hodnot.
0 (přednastaveno) - nezobrazovat (zobrazovat jen "-")
1 - zobrazovat "+" (pokud je nula, pak mezera)
2 - zobrazovat " " (mezera)
Group:nn - Seskupování skupin čísel do trojic. Například "Group:1;".
Viz: Kombinace klíčů Len, DLen, IfLong a Group.
0 (přednastaveno) - neseskupovat
1 - seskupovat vlevo od desetinného oddělovače (tisíce)
2 - seskupovat vpravo od desetinného oddělovače (tisíciny)
3 - seskupovat vlevo i vpravo od desetinného oddělovače (tisíce i tisíciny)
GroupSep:nn - Separátor mezi skupinami. Například "Group:1;GroupSep:2;".
0 (přednastaveno) - mezera
1 - tečka
2 - čárka
DLen:nn - Počet znaků vpravo od desetinného oddělovače. Například "DLen:3;".
Viz: Kombinace klíčů Len, DLen, IfLong a Group.
-1 (přednastaveno) - neomezeno (plnění do počtu zadaného v Len, ale pokud Len=-1 pak DLen:3)
n - celé číslo včetně Group separátoru (3=default)
DSep:nn - Typ desetinné tečky (má význam pouze pokud DLen!=0). Například "DSep:1;".
0 (přednastaveno) - tečka "."
1 - čárka ","
DZero:nn - Nuly vpravo za číslem (má význam pouze pokud DLen!=0). Například "DZero:1;".
0 (přednastaveno) - ponechat nuly
1 - nuly nahradit mezerou
2 - optimalizovat (smazat nuly a případně desetinný oddělovač)

Klíče pro DateTime:

Fmt:ss - Formát času viz: Formátovací předpis pro čas (DateTime). Například "Type:DateTime;Fmt:%Y.%m.%d %H:%M:%S.%T;".
Viz: Příklady pro typ DateTime.

Klíče pro TimeSpan:

Fmt:ss - Formát časového rozpětí viz: Formátovací předpis pro čas (DateTime). Například "Type:TimeSpan;Fmt:%*N%*d-%H:%M:%S.%T;".
Viz: Příklady pro typ TimeSpan.

Ostatní klíče:

FmtC:ss - Formát převodu podle jazyka C (zastaralý způsob pro zachování kompatability). Popis viz: Formátovací předpis jazyka C. Například "FmtC:%5.2f;".
Viz: Použití formátování podle jazyka C FmtC.


Kombinace klíčů RTxt a DLen pro hodnotu typu Float:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("Type:Float;RTxt: %;DLen:2;");
var Val = oFmt.Format(90.845);
// naformátovaná hodnota v proměnné Val je: "90.84 %"
Kombinace klíčů Len, DLen, IfLong a Group:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("Len:12;DLen:7;IfLong:2;Group:3;");
var Val = oFmt.Format(-1234567.123456);
// naformátovaná hodnota v proměnné Val je: "-1 234 567.1"
Použití Sign k zarovnání plusových a mínusových hodnot:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("Sign:2;");
var Val = oFmt.Format(1235.67);
// naformátovaná hodnota v proměnné Val je: " 1235.670"
Val = oFmt.Format(-1235.67);
// naformátovaná hodnota v proměnné Val je: "-1235.670"
Použití Radix a další klíče k naformátování hodnoty:
JavaScriptVBScriptVyber a zkopíruj do schránky

// hexadecimal
var oFmt = Pm.CreatePmFormat("Type:Int;Radix:16;LTxt:0x;Case:1;");
var Val = oFmt.Format(10.58);
// naformátovaná hodnota v proměnné Val je: "0xB"
var nVal = oFmt.Scan(Val);
// nVal = 11

oFmt = Pm.CreatePmFormat("Type:Int;Radix:8;LTxt:0o;");
Val = oFmt.Format(10.58);
// naformátovaná hodnota v proměnné Val je: "0o13"
nVal = oFmt.Scan(Val);
// nVal = 11

oFmt = Pm.CreatePmFormat("Type:Int;Radix:2;LTxt:0b;");
Val = oFmt.Format(3.4);
// naformátovaná hodnota v proměnné Val je: "0b11"
nVal = oFmt.Scan(Val);
// nVal = 3
Příklady pro typ Bool a další klíče k naformátování hodnoty:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("Type:Bool;");
var Val = oFmt.Format(3.14);
// naformátovaná hodnota v proměnné Val je: "1"
Val = oFmt.Format(0);
// naformátovaná hodnota v proměnné Val je: "0"

oFmt = Pm.CreatePmFormat("Type:Bool;LTxt:Ln;RTxt:V;");
Val = oFmt.Format(true);
// naformátovaná hodnota v proměnné Val je: "Ln1V"
Val = oFmt.Format(false);
// naformátovaná hodnota v proměnné Val je: "Ln0V"
Příklady pro typ String a další klíče k naformátování hodnoty:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("Type:String;LTxt:x;RTxt:q;Case:1;");
var Val = oFmt.Format("aBcD");
// naformátovaná hodnota v proměnné Val je: "xABCDq"

oFmt = Pm.CreatePmFormat("Type:String;LTxt:X_;RTxt:_Q;Len:6;IfLong:2;");
Val = oFmt.Format("abcdefgh");
// naformátovaná hodnota v proměnné Val je: "X_abcdef_Q"
Příklady pro typ DateTime:
JavaScriptVBScriptVyber a zkopíruj do schránky

var t = Pm.CreateDate(2021, 2, 13, 4, 15, 6, 789);

var oFmt = Pm.CreatePmFormat("Type:DateTime;");
var Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "13.02.2021 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "13.02.2021 04:15:06"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%4Y.%2d.%2m %2H:%2M:%2S");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "2021.13.02 04:15:06"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*d.%*m.%*Y %*H:%*M:%*S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "13.2.2021 4:15:6.789"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*Y.%*m.%*d");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "2021.13.2"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*H:%*M:%*S");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "4:15:6"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y%m%d%H%M%S");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "20211302041506"
Příklady pro typ TimeSpan:
JavaScriptVBScriptVyber a zkopíruj do schránky

var t = Pm.CreateDate(0, 0, 53, 4, 15, 6, 789);

var oFmt = Pm.CreatePmFormat("Type:TimeSpan;");
var Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "53 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%2d %2H:%2M:%2S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "53 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*d %*H:%*M:%*S");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "53 4:15:6"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%d%m%Y%H%M%S%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "13022021041506789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%N%2d %2H:%2M:%2S.%T");
Val = oFmt.Format(-t);
// naformátovaná hodnota v proměnné Val je: "-53 04:15:06.789"

t = Pm.CreateDate(0, 0, 1053, 4, 15, 6, 789);
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "1053-04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%H:%M:%S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "25276:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%M:%S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "1516575:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%S.%T");
Val = oFmt.Format(t);
// naformátovaná hodnota v proměnné Val je: "90994506.789"
Použití formátování podle jazyka C FmtC:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oFmt = Pm.CreatePmFormat("FmtC:%d"");
var Val = oFmt.Format(1);
// naformátovaná hodnota v proměnné Val je: "1"

oFmt = Pm.CreatePmFormat("FmtC:x%dq");
Val = oFmt.Format(1);
// naformátovaná hodnota v proměnné Val je: "x1q"

oFmt = Pm.CreatePmFormat("FmtC:%f");
Val = oFmt.Format(12.3456789);
// naformátovaná hodnota v proměnné Val je: "12.3456789"

oFmt = Pm.CreatePmFormat("FmtC:%13.2f");
Val = oFmt.Format(123456789.123456789);
// naformátovaná hodnota v proměnné Val je: " 123456789.12"

oFmt = Pm.CreatePmFormat("FmtC:%x");
Val = oFmt.Format(255);
// naformátovaná hodnota v proměnné Val je: "ff"

oFmt = Pm.CreatePmFormat("FmtC:%03X");
Val = oFmt.Format(10.58);
// naformátovaná hodnota v proměnné Val je: "00B"

oFmt = Pm.CreatePmFormat("FmtC:n=%03X");
Val = oFmt.Format(10.58);
// naformátovaná hodnota v proměnné Val je: "n=00B"
© MICROSYS, spol. s r. o.