Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Formátovací specifikace stringu jazyka C

Zde popsaný formátovací text slouží pro zadání předpisu jak nějakou hodnotu (hodnoty) zapsat do textu. Například určuje že reálná hodnota se má do textu zapsat na 3 desetinná místa, atd. Tento formátovaný text se v aplikaci PROMOTIC používá:
- v konfigurátoru Typ formátování hodnoty grafického prvku PmiText.
- v konfigurátoru Typ formátování hodnoty grafického prvku PmiWEdit.
 
Pokud ve formátovacím textu nepoužijete znaky % a \, bude výsledek roven formátovacímu textu a na hodnoty řídících proměnných nebude brán zřetel.

Znak % slouží pro výpis hodnot řídící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 doleva
- první sada číslic 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 číslic určuje vkládaní čísla 0 místo mezery. Příklad: "%05d" bude po zpracování "00123".
- tečka a za ní druhá sada číslic určuje přesnost, tzn. maximální počet cifer za desetinnou tečkou. 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ámkaPříklad
Boolean 'u'   %u
Byte 'u'   %u
Integer 'd' dekadické zobrazení (např. "254", "-56" ..) %d, %5d, %05d
Integer 'x' hexadecimální zobrazení (např. "E5F") %x, %4x, %04x
Long 'ld'   %ld, %7ld, %07d
Single
'e'
'f'
zobrazí se ve tvaru: [-]d.ddde[+-]dd
zobrazí se ve tvaru: [-]dddd.ddd
%e
%f, %3.4f
Double
'le'
'lf'
zobrazí se ve tvaru: [-]d.ddde[+-]dd
zobrazí se ve tvaru: [-]dddd.ddd
%le
%lf, %4.7lf
String 's'   %s
 
Rozšíření syntaxe formátovacího textu 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 (obrácené 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 Tabelator
\v Znak s kódem &H0b VT - Vertical Tabelator
\xh Znak s kódem &Hh  
\xhh Znak s kódem &Hhh  
 
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á řídící proměnná (Vykon, hodnota 34.2345) je typu Float.

Výstupní text bude mít tvar:

Teplota= 98 ... Vykon=34.23
Příklad2:
str = Pm.StringFormat("New line \n char 18hexa: \x18", 1)
je ekvivalentní zápisu
str = "New line " & Chr(&H0a) & " char 18hexa: " & Chr(&H18)
Nyní je korektní předávat například metodě Pm.StringFormat parametr bez pole:
Dim i
i=1
Pm.Debug Pm.StringFormat("Value:%i", i)
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice