Update cookies preferences
Promotic

Formátovací předpis jazyka C

Zde popsaný formátovací předpis slouží pro zadání předpisu jak nějakou hodnotu (hodnoty) zapsat do textu.
Například určuje, že reálné číslo se má do textu zapsat na 3 desetinná místa, atd.
Tento formátovaný text se v aplikaci PROMOTIC používá:
- v datové vazbě "F - Formátování řetězce".
- v konfigurátoru "Typ formátování hodnoty" objektu PmgString.
- v konfigurátoru "Typ formátování hodnoty" objektu PmgWEdit.


Pokud ve formátovací předpis se nepoužijí znaky % a \, pak bude výsledek roven formátovacímu textu a na hodnoty řídicích proměnných nebude brán zřetel.
Znak % slouží pro výpis hodnot řídicích proměnných. Znaky za % definují způsob výpisu:
- Znak % určuje výpis znaku %. Příklad: "%%" bude po zpracování "%"
- Znak - (minus) určuje zarovnání hodnoty vlevo
- první sada cifer určuje minimální šířku pole. Příklad: "%5d" bude po zpracování "..123" (tečky znamenají mezery)
- číslo 0 na začátku první sady cifer určuje vkládaní cifry 0 místo mezery. Příklad: "%05d" bude po zpracování "00123".
- tečka a za ní druhá sada cifer určuje přesnost, tzn. maximální počet desetinných míst. Příklad: "%6.3f" bude po zpracování "12.345", "%.2f" bude po zpracování "12.34".
- znak datového typu:
Datový typ Znak Poznámka Příklad
Boolean 'u'   %u
Byte 'u'   %u
Integer 'd' zobrazení decimálně (např. "254", "-56" ..) %d, %5d, %05d
Integer 'x' zobrazení v hexadecimálním tvaru (např. "E5F") %x, %4x, %04x
Long 'ld'   %ld, %7ld, %07d
Single
'e'
'f'
zobrazí se v podobě: [-]d.ddde[+-]dd
zobrazí se v podobě: [-]dddd.ddd
%e
%f, %3.4f
Double
'le'
'lf'
zobrazí se v podobě: [-]d.ddde[+-]dd
zobrazí se v podobě: [-]dddd.ddd
%le
%lf, %4.7lf
String 's'   %s


Rozšíření syntaxe formátovacího předpisu o escape sekvence:
Tuto rozšířenou syntaxi lze použít pouze při volání metod Pm.StringFormat a Pm.StringScan.
Sekvence Znak ASCII význam (viz ASCII tabulka)
\\ Znak "\" Backslash (zpětné lomítko)
\a Znak s kódem &H07 BEL
\b Znak s kódem &H08 BS - Backspace
\f Znak s kódem &H0c FF - Formfeed
\n Znak s kódem &H0a LF, NL - Linefeed, New Line
\r Znak s kódem &H0d CR - Carriage return
\t Znak s kódem &H09 HT - Tab, Horizontal Tabulator
\v Znak s kódem &H0b VT - Vertical Tabulator
\xh Znak s kódem &Hh  
\xhh Znak s kódem &Hhh  


Poznámka:
HexaString (textový řetězec v hexadecimálním tvaru) lze používat dvojím způsobem:
1) Zobrazení čísla v hexadecimálním tvaru, kde vyšší řády jsou vlevo. Odpovídá uložení v paměti Big-endian.
Jedná se o konverze hodnoty čísla do textového řetězce (a obráceně) pomocí formátovacího řetězce.
Pro využití HexaString tímto způsobem se doporučuje používat objekt PmFormat.
2) Zakódování obsahu části paměti o určité velikosti (např. 1B, 2B, 4B …) v hexadecimálním tvaru. Potom záleží na způsobu uložení čísla v paměti.
Na procesorech Intel a AMD (architektura x86 nebo x64) se používá tzv. Little-endian, kde nižší řády jsou vlevo.
Pro využití HexaString tímto způsobem se doporučuje používat výhradně objekt PmBuffer, který umí pracovat s Little-endian i Big-endian.
 
Příklad1:
Nechť je formátovací předpis:
Teplota=%5d ... Vykon=%5.2f
a v pořadí první proměnná (Teplota, hodnota 98) je typu Integer, v pořadí druhá proměnná (Vykon, hodnota 34.2345) je typu Single.
Výstupní text bude v podobě:
Teplota= 98 ... Vykon=34.23
Příklad2:
JavaScriptVyber a zkopíruj do schránky

var str = Pm.StringFormat("New line \n char 18hexa: \x18", 1);
je ekvivalentní zápisu:
VBScriptVyber a zkopíruj do schránky

Dim str
str = "New line " & Chr(&H0a) & " char 18hexa: " & Chr(&H18)
Nyní je korektní předávat parametr bez pole (například v metodě Pm.StringFormat):
JavaScriptVBScriptVyber a zkopíruj do schránky

var nVal = 1;
Pm.Debug(Pm.StringFormat("Hodnota: %d", nVal));
Navigace:
 
 
- Formátovací předpis jazyka C
 
 
- SVG
© MICROSYS, spol. s r.o.