Formátovací řetězec objektu PmFormat
Formát konverze mezi hodnotou a řetězcem.
Hodnota pro formátování může být typu:
- Float = reálné číslo (tzn. s desetinnou tečkou)
- Int = celé číslo
- Bool = hodnota true nebo false
- String = textový řetězec
- DateTime = datum a čas
- TimeSpan = časové rozpětí (tzn. hodnota neobsahuje měsíc a rok)
Parametry textového řetězce jsou ve formátu
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:
Příklady pro typ Float.
-1 (přednastaveno) - neomezeno, pro
Scan najít konec čísla
n - stanovený počet znaků
IfShort:nn - Co dělat když hodnota je 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 mezi znaménko a první cifru (pro ne číselné hodnoty jako IfShort:1)
IfLong:nn - Co dělat když hodnota je delší než
Len. Například
"Len:4;IfLong:2;".
Viz:
Příklady pro typ Float.
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 IfLong:2)
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="")
Case:nn - Konverze na velké/malé znaky (znaky v
LTxt a
RTxt se nepřevádí). Například
"Case:2;".
Viz:
Příklady pro typ String.
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:
Sign:nn - Jak zobrazovat znaménko plus. Například
"Sign:1;".
Viz:
Příklady pro typ Float.
0 (přednastaveno) - nezobrazovat (zobrazovat pouze "-")
1 - zobrazovat "+" (pokud je nula, pak mezera)
2 - zobrazovat " " (mezera)
Group:nn - Seskupování skupin čísel do trojic. Například
"Group:1;".
Viz:
Příklady pro typ Float.
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 - Oddělovač 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:
Příklady pro typ Float.
-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 oddělovače (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 TimeSpan:
FmtType:nn (nepovinné) - Typ formátování časového rozpětí. Například
"Type:TimeSpan;FmtType:10;".
Viz:
Příklady pro typ TimeSpan.
0 (přednastaveno) - Uživatelský formát časového rozpětí určený formátovacím řetězcem. Viz klíč
Fmt.
10 - Systémový formát časového rozpětí. Uvedeny jsou hodnoty použitých položek časového rozpětí spolu s písmenkem indikujícím typ položky. Položky s nulovou hodnotou se neuvádějí.
Syntaxe: [-][Nd][Nh][Nm][Ns][Nt], kde
N je číslo a:
d - Počet dnů. Například 2d znamená 2 dny nebo 1.5d znamená 36 hodin.
h - Počet hodin. Například 2h znamená 2 hodiny nebo 1.5h znamená 90 minut.
m - Počet minut. Například 2m znamená 2 minuty nebo 1.5m znamená 90 sekund.
s - Počet sekund. Například 2s znamená 2 sekundy nebo 1.5s znamená 1500 milisekund.
t - Počet milisekund. Například 10t znamená 10 milisekund nebo 500t znamená 500 milisekund.
Příklady pro typ Float
Kombinace klíčů RTxt a DLen:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Type:Float;RTxt: %;DLen:2;");
var sVal = oFmt.Format(90.845);
// sVal = "90.84 %"
Dim oFmt
Set oFmt = Pm.CreatePmFormat("Type:Float;RTxt: %;DLen:2;")
Dim sVal
sVal = oFmt.Format(90.845)
' sVal = "90.84 %"
Použití Group pro rozdělení čísla do trojic cifer:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Len:12;DLen:7;IfLong:2;Group:3;");
var sVal = oFmt.Format(-1234567.123456);
// sVal = "-1 234 567.1"
Dim oFmt
Set oFmt = Pm.CreatePmFormat("Len:12;DLen:7;IfLong:2;Group:3;")
Dim sVal
sVal = oFmt.Format(-1234567.123456)
' sVal = "-1 234 567.1"
Použití Sign pro zarovnání plusových a mínusových hodnot:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Sign:2;");
var sVal;
sVal = oFmt.Format(1235.67);
// sVal = " 1235.670"
sVal = oFmt.Format(-1235.67);
// sVal = "-1235.670"
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Sign:2;")
sVal = oFmt.Format(1235.67)
' sVal = " 1235.670"
sVal = oFmt.Format(-1235.67)
' sVal = "-1235.670"
Příklady pro typ Int
Použití Radix pro formátování čísla do hexadecimálního tvaru:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Type:Int;Radix:16;LTxt:0x;Case:1;");
var sVal = oFmt.Format(10.58);
// sVal = "0xB"
var nVal = oFmt.Scan(sVal);
// nVal = 11
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:Int;Radix:16;LTxt:0x;Case:1;")
sVal = oFmt.Format(10.58)
' sVal = "0xB"
Dim nVal
nVal = oFmt.Scan(sVal)
' nVal = 11
Použití Radix pro formátování čísla do oktálového tvaru:
JavaScriptVBScriptVyber a zkopíruj do schránky
oFmt = Pm.CreatePmFormat("Type:Int;Radix:8;LTxt:0o;");
sVal = oFmt.Format(10.58);
// sVal = "0o13"
nVal = oFmt.Scan(sVal);
// nVal = 11
Set oFmt = Pm.CreatePmFormat("Type:Int;Radix:8;LTxt:0o;")
sVal = oFmt.Format(10.58)
' sVal = "0o13"
nVal = oFmt.Scan(sVal)
' nVal = 11
Použití Radix pro formátování čísla do binárního tvaru:
JavaScriptVBScriptVyber a zkopíruj do schránky
oFmt = Pm.CreatePmFormat("Type:Int;Radix:2;LTxt:0b;");
sVal = oFmt.Format(3.4);
// sVal = "0b11"
nVal = oFmt.Scan(sVal);
// nVal = 3
Set oFmt = Pm.CreatePmFormat("Type:Int;Radix:2;LTxt:0b;")
sVal = oFmt.Format(3.4)
' sVal = "0b11"
nVal = oFmt.Scan(sVal)
' nVal = 3
Příklady pro typ Bool
Příklad2:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Type:Bool;LTxt:Ln;RTxt:V;");
var sVal;
sVal = oFmt.Format(true);
// sVal = "Ln1V"
sVal = oFmt.Format(false);
// sVal = "Ln0V"
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:Bool;LTxt:Ln;RTxt:V;")
sVal = oFmt.Format(true)
' sVal = "Ln1V"
sVal = oFmt.Format(false)
' sVal = "Ln0V"
Příklady pro typ String
Příklad1:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Type:String;LTxt:x;RTxt:q;Case:1;");
var sVal = oFmt.Format("aBcD");
// sVal = "xABCDq"
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:String;LTxt:x;RTxt:q;Case:1;")
sVal = oFmt.Format("aBcD")
' sVal = "xABCDq"
Příklad2:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oFmt = Pm.CreatePmFormat("Type:String;LTxt:X_;RTxt:_Q;Len:6;IfLong:2;");
var sVal = oFmt.Format("abcdefgh");
// sVal = "X_abcdef_Q"
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:String;LTxt:X_;RTxt:_Q;Len:6;IfLong:2;")
sVal = oFmt.Format("abcdefgh")
' sVal = "X_abcdef_Q"
Příklady pro typ DateTime
Příklad:
JavaScriptVBScriptVyber a zkopíruj do schránky
var t = Pm.CreateDate(2024, 2, 13, 4, 15, 6, 789);
var oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S.%T");
var sVal = oFmt.Format(t);
// sVal = "13.02.2024 04:15:06.789"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S");
sVal = oFmt.Format(t);
// sVal = "13.02.2024 04:15:06"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%4Y.%2d.%2m %2H:%2M:%2S");
sVal = oFmt.Format(t);
// sVal = "2024.13.02 04:15:06"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*d.%*m.%*Y %*H:%*M:%*S.%T");
sVal = oFmt.Format(t);
// sVal = "13.2.2024 4:15:6.789"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*Y.%*m.%*d");
sVal = oFmt.Format(t);
// sVal = "2024.13.2"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*H:%*M:%*S");
sVal = oFmt.Format(t);
// sVal = "4:15:6"
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y%m%d%H%M%S");
sVal = oFmt.Format(t);
// sVal = "20241302041506"
Dim t
t = Pm.CreateDate(2024, 2, 13, 4, 15, 6, 789)
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S.%T")
sVal = oFmt.Format(t)
' sVal = "13.02.2024 04:15:06.789"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S")
sVal = oFmt.Format(t)
' sVal = "13.02.2024 04:15:06"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%4Y.%2d.%2m %2H:%2M:%2S")
sVal = oFmt.Format(t)
' sVal = "2024.13.02 04:15:06"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*d.%*m.%*Y %*H:%*M:%*S.%T")
sVal = oFmt.Format(t)
' sVal = "13.2.2024 4:15:6.789"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*Y.%*m.%*d")
sVal = oFmt.Format(t)
' sVal = "2024.13.2"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*H:%*M:%*S")
sVal = oFmt.Format(t)
' sVal = "4:15:6"
Set oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y%m%d%H%M%S")
sVal = oFmt.Format(t)
' sVal = "20241302041506"
Příklady pro typ TimeSpan
Příklad:
JavaScriptVBScriptVyber a zkopíruj do schránky
var t = Pm.CreateDate(0, 0, 53, 4, 15, 6, 789);
var oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%2d %2H:%2M:%2S.%T");
var sVal = oFmt.Format(t);
// sVal = "53 04:15:06.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*d %*H:%*M:%*S");
sVal = oFmt.Format(t);
// sVal = "53 4:15:6"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%d%m%Y%H%M%S%T");
sVal = oFmt.Format(t);
// sVal = "13022024041506789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%N%2d %2H:%2M:%2S.%T");
sVal = oFmt.Format(-t);
// sVal = "-53 04:15:06.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10");
sVal = oFmt.Format(-t);
// sVal = "-53d4h15m6s789t"
t = Pm.CreateDate(0, 0, 1053, 4, 15, 6, 789);
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T");
sVal = oFmt.Format(t);
// sVal = "1053-04:15:06.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%H:%M:%S.%T");
sVal = oFmt.Format(t);
// sVal = "25276:15:06.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%M:%S.%T");
sVal = oFmt.Format(t);
// sVal = "1516575:06.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%S.%T");
sVal = oFmt.Format(t);
// sVal = "90994506.789"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10");
sVal = oFmt.Format(t);
// sVal = "1053d4h15m6s789t"
t = Pm.CreateDate(0, 0, 0, 1, 30, 0, 0);
oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T");
sVal = oFmt.Format(t);
// sVal = "0-01:30:00.000"
oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10");
sVal = oFmt.Format(t);
// sVal = "1h30m"
Dim t
t = Pm.CreateDate(0, 0, 53, 4, 15, 6, 789)
Dim oFmt, sVal
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%2d %2H:%2M:%2S.%T")
sVal = oFmt.Format(t)
' sVal = "53 04:15:06.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*d %*H:%*M:%*S")
sVal = oFmt.Format(t)
' sVal = "53 4:15:6"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%d%m%Y%H%M%S%T")
sVal = oFmt.Format(t)
' sVal = "13022024041506789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%N%2d %2H:%2M:%2S.%T")
sVal = oFmt.Format(-t)
' sVal = "-53 04:15:06.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10")
sVal = oFmt.Format(-t)
' sVal = "-53d4h15m6s789t"
t = Pm.CreateDate(0, 0, 1053, 4, 15, 6, 789)
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T")
sVal = oFmt.Format(t)
' sVal = "1053-04:15:06.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%H:%M:%S.%T")
sVal = oFmt.Format(t)
' sVal = "25276:15:06.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%M:%S.%T")
sVal = oFmt.Format(t)
' sVal = "1516575:06.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%S.%T")
sVal = oFmt.Format(t)
' sVal = "90994506.789"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10")
sVal = oFmt.Format(t)
' sVal = "1053d4h15m6s789t"
t = Pm.CreateDate(0, 0, 0, 1, 30, 0, 0)
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T")
sVal = oFmt.Format(t)
' sVal = "0-01:30:00.000"
Set oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10")
sVal = oFmt.Format(t)
' sVal = "1h30m"
Použití FmtC pro formátování podle jazyka C:
Historie:
Pm9.00.26: Nová volba
FmtType umožňuje zadat systémový tvar formátu pro
TimeSpan.