Update cookies preferences
Promotic

Łańcuch formatowania obiektu PmFormat

Format konwersji pomiędzy wartością a łańcuchem.

Typy formatowanej wartości:
- Float = liczba rzeczywista (tzn. z kropką dziesiętną)
- Int = liczba całkowita
- Bool = wartość true lub false
- String = łańcuch tekstowy
- DateTime = data oraz czas
- TimeSpan = przedział czasu (tzn. wartość nie zawiera miesiąc oraz rok)


Parametry łańcucha tekstowego to w formacie KeyVal, który został napełniony z wartości parametru sFormat metody SetFormat lub CreatePmFormat.

Klucze wspólne dla wszystkich typów:

Type:xx; - Typ wartości. Na przykład "Type:Float;".
Float (domyślnie) - liczba rzeczywista
Int - liczba całkowita
Bool - wartość logiczna (1/0)
String - łańcuch tekstowy
DateTime - Data oraz czas
TimeSpan - Przedział czasu
Len:nn - Całkowita ilość znaków bez LTxt oraz RTxt
dla wartości liczbowej włącznie Sign, DSep, Group. Na przykład "Len:6;".
Patrz: Przykłady dla typu Float.
-1 (domyślnie) - nieograniczone, dla Scan znajdź koniec liczby
n - określona ilość znaków
IfShort:nn - Co zrobić, jeśli wartość jest krótsza niż Len. Na przykład "Len:4;IfShort:2;".
0 (domyślnie) - nie wykonuj nic
1 - uzupełń z lewej znaki spacja
2 - uzupełń z prawej znaki spacja
7 - tylko dla wartości liczbowej: uzupełń z lewej zerami pomiędzy znak a pierwszą cyfrę (dla wartości nieliczbowe jako IfShort:1)
IfLong:nn - Co zrobić, jeżeli wartość jest dłuższa niż Len. Na przykład "Len:4;IfLong:2;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - nie wykonuj nic, to znaczy pozostaw następne
1 - obetnij z lewej na długość Len
2 - obetnij z prawej na długość Len
4 - uzupełń znakiem określonym w IfLongPar na długość Len
5 - zastąpi tekstem zawartym w IfLongPar
7 - tylko dla wartości liczbowej: zawsze format max do IfLongPar (dla wartości nieliczbowej jako IfLong:2)
IfLongPar:ss - Określa znak(i) uzupełniające parametra IfLong. Na przykład "Len:4;IfLong:5;IfLongPar:MyErr;".
ss -
dla IfLong:4; - znak uzupełniający (domyślnie="", spowoduje uzupełnienie znakiem gwiazdka "*")
dla IfLong:5; - tekst zastępczy (domyślnie="")
LTxt:ss - Tekst wlewo od wartości Na przykład "LTxt:Wartość ;".
Patrz: Zastosowanie Radix do formatowania liczb do postaci szesnastkowej.
RTxt:ss - Tekst wprawo od wartości (dla Scan RTxt nie musi być wewnątrz wartości) Na przykład "RTxt:°C;".
Patrz: Przykłady dla typu Float.
Case:nn - Konwersja na duże/małe znaki (znaki LTxt oraz RTxt nie podlegają konwersji). Na przykład "Case:2;".
Patrz: Przykłady dla typu String.
0 (domyślnie) - pozostaw bez zmian
1 - UpperCase - na wielkie znaki
2 - LowerCase - na małe znaki

Klucze wspólne dla wszystkich liczb:

Radix:nn - Inny system liczbowy (dla typu Int). Na przykład "Type:Int;Radix:16;".
Patrz: Zastosowanie Radix do formatowania liczb do postaci szesnastkowej.
2 - binarny
8 - oktal
10 (domyślnie) - dziesiątkowy
16 - w układzie szesnastkowym. Znaki hexa będą małe, ale można je zwiększyć przy pomocy Case:1;
Sign:nn - Jak wyświetlać znak plus. Na przykład "Sign:1;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - nie wyświetlać (wyświetlać tylko "-")
1 - wyświetlać "+" (jeżeli zero, wtedy spacja)
2 - wyświetlać " " (spacja)
Group:nn - Łączenie grup liczb do trójek. Na przykład "Group:1;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - nie łączyć
1 - grupuj wlewo od separatora dziesiętnego (tysiące)
2 - grupuj wprawo od separatora dziesiętnego (tysięczne)
3 - grupuj wlewo i wprawo od separatora dziesiętnego (tysiące i tysięczne)
GroupSep:nn - Separator pomiędzy grupami. Na przykład "Group:1;GroupSep:2;".
0 (domyślnie) - spacja
1 - kropka
2 - przecinek
DLen:nn - Ilość znaków wprawo od separatora dziesiętnego. Na przykład "DLen:3;".
Patrz: Przykłady dla typu Float.
-1 (domyślnie) - nieograniczone (uzupełnienie do ilości określonej w Len, ale jeżeli Len=-1 wtedy DLen:3)
n - liczba całkowita włącznie z separatorem Group (3=default)
DSep:nn - Typ kropki dziesiętnej (ma znaczenie tylko jeżeli DLen!=0). Na przykład "DSep:1;".
0 (domyślnie) - kropka "."
1 - przecinek ","
DZero:nn - Zera wprawo za liczbą (ma znaczenie tylko jeżeli DLen!=0). Na przykład "DZero:1;".
0 (domyślnie) - pozostaw zera
1 - zastąp zera spacją
2 - optymalizuj (usunąć zera oraz ewentualnie separator dziesiętny)

Klucze dla DateTime:

Fmt:ss - Format czasu patrz: Reguła formatowania dla daty i czasu (DateTime). Na przykład "Type:DateTime;Fmt:%Y.%m.%d %H:%M:%S.%T;".
Patrz: Przykłady dla typu DateTime.

Klucze dla TimeSpan:

FmtType:nn (opcjonalne) - Typ formatowania przedziału czasu. Na przykład "Type:TimeSpan;FmtType:10;".
Patrz: Przykłady dla typu TimeSpan.
0 (domyślnie) - Format przedziału czasu uzytkownika określony łańcuchem formatowania. Patrz klucz Fmt.
10 - Systemowy format przedziału czasu. Określone są wartości użytych elementów przedziału czasu wraz z literą wskazującą typ elementu. Elementy z wartością null nie są wyświetlane.
Składnia: [-][Nd][Nh][Nm][Ns][Nt], gdzie N jest numer oraz:
d - Ilość dni. Na przykład 2d oznacza 2 dni lub 1.5d oznacza 36 godzin.
h - Ilość godzin. Na przykład 2h oznacza 2 godziny lub 1.5h oznacza 90 minut.
m - Ilość minut. Na przykład 2m oznacza 2 minuty lub 1.5m oznacza 90 sekund.
s - Ilość sekund. Na przykład 2s oznacza 2 sekundy lub 1.5s oznacza 1500 milisekund.
t - Ilość milisekund. Na przykład 10t oznacza 10 milisekund lub 500t oznacza 500 milisekund.
Fmt:ss - Format przedziału czasu użytkownika patrz: Reguła formatowania dla zakresu czasu (TimeSpan). Tylko dla FmtType jest 0. Na przykład "Type:TimeSpan;FmtType:0;Fmt:%*N%*d-%H:%M:%S.%T;".
Patrz: Przykłady dla typu TimeSpan.

Pozostałe klucze:

FmtC:ss - Format konwersji języka C (przestarzały w celu zachowania kompatybilności). Opis patrz: Reguła formatowania języka C. Na przykład "FmtC:%5.2f;".
Patrz: Zastosowanie FmtC do formatowania wg języka C:.

Przykłady dla typu Float

Kombinacja kluczy RTxt oraz DLen:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Float;RTxt: %;DLen:2;");
var sVal = oFmt.Format(90.845);   // sVal = "90.84 %"
Zastosowanie Group w celu podzielenia liczby na trójki cyfr:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Len:12;DLen:7;IfLong:2;Group:3;");
var sVal = oFmt.Format(-1234567.123456);   // sVal = "-1 234 567.1"
Zastosowanie Sign w celu wyrównania dodatnich oraz ujemnych wartości:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Sign:2;");
var sVal;
sVal = oFmt.Format(1235.67);   // sVal = " 1235.670"
sVal = oFmt.Format(-1235.67);   // sVal = "-1235.670"

Przykłady dla typu Int

Zastosowanie Radix do formatowania liczb do postaci szesnastkowej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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
Zastosowanie Radix do formatowania liczb do postaci ósemkowej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

oFmt = Pm.CreatePmFormat("Type:Int;Radix:8;LTxt:0o;");
sVal = oFmt.Format(10.58);   // sVal = "0o13"
nVal = oFmt.Scan(sVal);   // nVal = 11
Zastosowanie Radix do formatowania liczb do postaci binarnej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

oFmt = Pm.CreatePmFormat("Type:Int;Radix:2;LTxt:0b;");
sVal = oFmt.Format(3.4);   // sVal = "0b11"
nVal = oFmt.Scan(sVal);   // nVal = 3

Przykłady dla typu Bool

Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Bool;");
var sVal;
sVal = oFmt.Format(3.14);   // sVal = "1"
sVal = oFmt.Format(0);   // sVal = "0"
Przykład2:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Bool;LTxt:Ln;RTxt:V;");
var sVal;
sVal = oFmt.Format(true);   // sVal = "Ln1V"
sVal = oFmt.Format(false);   // sVal = "Ln0V"

Przykłady dla typu String

Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:String;LTxt:x;RTxt:q;Case:1;");
var sVal = oFmt.Format("aBcD");   // sVal = "xABCDq"
Przykład2:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:String;LTxt:X_;RTxt:_Q;Len:6;IfLong:2;");
var sVal = oFmt.Format("abcdefgh");   // sVal = "X_abcdef_Q"

Przykłady dla typu DateTime

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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"

Przykłady dla typu TimeSpan

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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"

Zastosowanie FmtC do formatowania wg języka C:

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("FmtC:%d\"");
var sVal = oFmt.Format(1);   // sVal = "1"

oFmt = Pm.CreatePmFormat("FmtC:x%dq");
sVal = oFmt.Format(1);   // sVal = "x1q"

oFmt = Pm.CreatePmFormat("FmtC:%f");
sVal = oFmt.Format(12.3456789);   // sVal = "12.3456789"

oFmt = Pm.CreatePmFormat("FmtC:%13.2f");
sVal = oFmt.Format(123456789.123456789);   // sVal = " 123456789.12"

oFmt = Pm.CreatePmFormat("FmtC:%x");
sVal = oFmt.Format(255);   // sVal = "ff"

oFmt = Pm.CreatePmFormat("FmtC:%03X");
sVal = oFmt.Format(10.58);   // sVal = "00B"

oFmt = Pm.CreatePmFormat("FmtC:n=%03X");
sVal = oFmt.Format(10.58);   // sVal = "n=00B"

Historia:
Pm9.00.26: Nowa opcja FmtType umożliwia określić systemową postać formatowania dla TimeSpan.
Pm9.00.17: Wytworzono
© MICROSYS, spol. s r.o.