Promotic

Reguła formatowania języka C

Niżej opisana reguła formatowania służy do wprowadzania przepisu, w jaki sposób wartość (wartości) zapisać w tekście. Na przykład określa, że liczba rzeczywista ma zostać zapisana do tekstu na 3 liczby dziesiętne, itd. W ten sposob formatowany tekst jest stosowany w aplikacji PROMOTIC:
- w konfiguratorze "Typ formatowania wartości" obiektu PmgString.
- w konfiguratorze "Typ formatowania wartości" obiektu PmgWEdit.


Jeżeli w regułi formatowania nie są wykorzystane znaki % oraz \, wtedy będzie wynik równy formatoanemu tekstu i na wartości zmiennych sterujących nie będą brane pod uwagę.
Znak % służy do wypisywania wartości zmiennych sterujących. Znaki za % ustalają sposób wypisu:
- Znak % określa wypisanie znaku %. Przykład: "%%" po opracowaniu będzie "%"
- Znak - (minus) określa wyrównanie wartości wlewo
- 1.łańcuch cyfr określa minimalną szerokość pola. Przykład: "%5d" po opracowaniu będzie "..123" (kropki oznaczają spacje)
- liczba 0 na początku 1.łańcucha cyfr określa wypisywanie cyfry 0 zamiast spacji. Przykład: "%05d" po opracowaniu będzie "00123".
- kropka i za nię 2.łańcuch cyfr określa dokładność, tzn. maksymalna ilość miejsc dziesiętnych. Przykład: "%6.3f" po opracowaniu będzie równy "12.345", "%.2f" po opracowaniu będzie równy "12.34".
- znak typu danych:
Typ danych Znak Notatka Przykład
Boolean 'u'   %u
Byte 'u'   %u
Integer 'd' wypis w układzie dziesiątkowym (np. "254", "-56" ..) %d, %5d, %05d
Integer 'x' wypis w układzie szesnastkowym (np. "E5F") %x, %4x, %04x
Long 'ld'   %ld, %7ld, %07d
Single
'e'
'f'
zostanie wyświetlona w formie: [-]d.ddde[+-]dd
zostanie wyświetlona w formie: [-]dddd.ddd
%e
%f, %3.4f
Double
'le'
'lf'
zostanie wyświetlona w formie: [-]d.ddde[+-]dd
zostanie wyświetlona w formie: [-]dddd.ddd
%le
%lf, %4.7lf
String 's'   %s


Rozszerzenie składni reguły formatowania o escape sekwencje:
Taką rozszerzoną składnię można zastosować tylko przy wywołaniu metod Pm.StringFormat oraz Pm.StringScan.
Sekwencja Znak Znaczenie ASCII (patrz Tabela kodów ASCII)
\\ Znak "\" Backslash (lewy ukośnik)
\a Znak o kodzie &H07 BEL
\b Znak o kodzie &H08 BS - Backspace
\f Znak o kodzie &H0c FF - Formfeed
\n Znak o kodzie &H0a LF, NL - Linefeed, New Line
\r Znak o kodzie &H0d CR - Carriage return
\t Znak o kodzie &H09 HT - Tab, Horizontal Tabulator
\v Znak o kodzie &H0b VT - Vertical Tabulator
\xh Znak o kodzie &Hh  
\xhh Znak o kodzie &Hhh  


Notatka:
HexaString (łańcuch tekstowy w układzie szesnastkowym) może być użyty na dwa sposoby:
1) Wyświetlenie liczb w układzie szesnastkowym, gdzie wyższe rzędy znajdują się po lewej stronie. Odpowiada to przechowywaniu w pamięci Big-endian. Chodzi o konwersję wartości liczbowej do łańcucha tekstowego (i odwrotnie) przy pomocy łańcucha formatowania. Do zastosowania HexaString w ten sposób jest zalecane zastosowanie obiektu PmFormat.
2) Zakodowanie zawartości sekcji pamięci o określone wielkości (np. 1B, 2B, 4B, ...) w układzie szesnastkowym. Następnie zależy to od tego, jak liczba jest przechowywana w pamięci. Na procesorach Intel i AMD (architektura x86 lub x64) używana jest tzw. Little-endian, gdzie niższe rzędy znajdują się po lewej stronie. Do zastosowania HexaString w ten sposób jest zalecane stosowanie wyłącznie obiektu PmBuffer, który może obsługiwać zarówno Little-endian jak i Big-endian.
 
Przykład1:
Miejmy następującą reguła formatowania:
Temperatura=%5d ... Moc=%5.2f
i pierwsza w kolejności zmienna (Temperatura, wartość 98) jest typu Integer, druga w kolejności zmienna (Moc, wartość 34.2345) jest typu Single.
Wyświetlony tekst będzie w formie:
Temperatura= 98 ... Moc=34.23
Przykład2:
JavaScriptWybierz oraz skopiuj do schowka

var str = Pm.StringFormat("New line \\n char 18hexa: \\x18", 1);
jest równoznaczny z zapisem
VBScriptWybierz oraz skopiuj do schowka

Dim str
str = "New line " & Chr(&H0a) & " char 18hexa: " & Chr(&H18)
Obecnie jest poprawne przekazywać na przykład w metodzie Pm.StringFormat parametr bez pola:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var i = 1;
Pm.Debug(Pm.StringFormat("Value:%d", i));
Nawigacja:
 
 
- Reguła formatowania języka C
 
 
- SVG
© MICROSYS, spol. s r.o.