Obsah / Utility / TEXTFORM / Datové struktury
Zdrojový kód: INCLUDE\UTIL\TEXTFORM.INC
Formátování textů - datové struktury
|
Struktura FORMPAR popisuje formátovací parametry pro jeden argument. FORMPAR_Prec je požadované přesnost. FORMPAR_Width je požadovaná šířka pole s údajem. FORMPAR_TypeFlg je typ argumentu a přepínače, je to společné návěští pro přepínače FORMPAR_Flags1 a FORMPAR_Flags2.
|
Proměnné FORMPAR_TypeFlg obsahuje typ argumentu podle výčtu uvedeného výše. Kód typu argumentu je sdílen s přepínači, proto je nutná manipulace s ním pomocí masky FORMTYPE_Mask (případně masky bez příznaku "velké písmeno" FORMTYPE_Mask0). Kód typu je ve struktuře umístěn na bitové pozici FORMTYPE_Bit.
Typ FORMTYPE_Par označuje DWORD parametr s hvězdičkou * načítaný z argumentů (šířka nebo přesnost). Typ FORMTYPE_Char označuje jeden znak v Unicode kódu "c", "C". FORMTYPE_String je text v kódu UTF-8 "s", "S". FORMTYPE_ArgDW označuje poslední typ argumentu ze skupiny argumentů, které v argumentech zabírají vždy 1 DWORD.
FORMTYPE_Int je dekadické celé číslo se znaménkem. FORMTYPE_UInt je dekadické celé číslo bez znaménka "d", "D", "i". FORMTYPE_Bin je binární celé číslo "b", "B". FORMTYPE_Oct je oktalové celé číslo "o", "O". FORMTYPE_Hex je hexadecimální celé číslo "x", "X". FORMTYPE_ArgInt označuje poslední celočíselný typ argumentu.
FORMTYPE_Float je desetinné číslo (bez exponentu) "f", "F". FORMTYPE_Exp označuje číslo s exponentem "e", "E". FORMTYPE_Mix označuje smíšené číslo (s exponentem nebo bez exponentu) "g", "G".
Přepínač FORMTYPE_Cap indikuje, že je varianta typu s velkým písmenem. FORMTYPE_Cap_b je číslo bitu přepínače indikace velkého písmene.
|
FORMFLAG* jsou formátovací přepínače. Varianta FORMFLAG_xxxx_b je bitová pozice ve struktuře parametrů, varianta FORMFLAG1_xxxx jsou přepínače pro FORMPAR_Flags1, varianta FORMFLAG2_xxxx jsou přepínače pro FORMPAR_Flags2.
FORMFLAG1_Left zajistí zarovnání údaje doleva (implicitně doprava) "-". FORMFLAG1_Sign zajistí uložení znaménka i v případě kladného čísla (jinak se uloží jen pro záporné číslo) "+". FORMFLAG1_Space doplní mezeru před číslo, jedná-li se o kladné číslo " ".
FORMFLAG2_Zero doplní před číslo nuly namísto mezer "0". FORMFLAG2_Long indikuje, že se použije dlouhý argument (QWORD pro celé číslo, extended double pro desetinné číslo) "l", "L", "I64". FORMFLAG2_Shrt indikuje, že se použije krátký argument (WORD pro celé číslo, single float pro desetinné číslo) "h", "H", "I16". FORMFLAG2_Alt zvolí první alternativní formát "#". FORMFLAG2_Alt2 zvolí druhý alternativní formát "##". FORMFLAG2_Thsnd oddělí řády čísla oddělovačem tisíců "~". FORMFLAG2_Cent vystředí údaj "@". FORMFLAG2_Prec použije alternativní přesnost "..".
Obsah / Utility / TEXTFORM / Datové struktury