Nota
Prístup na túto stránku vyžaduje autorizáciu. Môžete sa pokúsiť prihlásiť alebo zmeniť adresár.
Prístup na túto stránku vyžaduje autorizáciu. Môžete skúsiť zmeniť adresáre.
Syntax
BinaryFormat.Group(
binaryFormat as function,
group as list,
optional extra as nullable function,
optional lastKey as any
) as function
O
Parametre sú nasledovné:
- Parameter
binaryFormaturčuje binárny formát hodnoty kľúča. - Parameter
groupposkytuje informácie o skupine známych položiek. - Voliteľný parameter
extramožno použiť na zadanie funkcie, ktorá vráti hodnotu binárneho formátu pre hodnotu nasledujúcu za neočakávaným kľúčom. Ak parameterextranie je zadaný, v prípade výskytu neočakávaných hodnôt kľúča sa vyskytne chyba.
Parameter group určuje zoznam definícií položiek. Každá definícia položky je zoznam obsahujúci 3 – 5 hodnôt nasledovne:
- Hodnota kľúča. Hodnota kľúča, ktorá zodpovedá položke. Táto položka musí byť jedinečná v rámci množiny položiek.
- Formát položky. Binárny formát zodpovedajúci hodnote položky. To umožňuje každej položke mať iný formát.
- Výskyt položky. hodnota BinaryOccurrence.Type určuje, koľkokrát sa očakáva, že položka sa zobrazí v skupine. Neprídu požadované položky, ktoré sa nenachádzajú. Povinné alebo voliteľné duplicitné položky sa správajú ako neočakávané hodnoty kľúča.
- Predvolená hodnota položky (voliteľná). Ak sa predvolená hodnota položky zobrazí v zozname definícií položiek a nemá hodnotu null, použije sa namiesto predvoleného nastavenia. Predvolená hodnota pre opakujúce sa alebo voliteľné položky je null a predvolená hodnota pre opakujúce sa hodnoty je prázdny zoznam { }.
- Transformácia hodnoty položky (voliteľná). Ak je funkcia transformácie hodnoty položky prítomná v zozname definícií položiek a nemá hodnotu null, zavolá sa na transformáciu hodnoty položky ešte pred jej vrátením. Funkcia transformácie sa volá len vtedy, ak sa položka zobrazí vo vstupe (nikdy sa nevolá s predvolenou hodnotou).
Príklad č. 1
Nasledujúca hodnota predpokladá jednobajtovú hodnotu kľúča so 4 očakávanými položkami v skupine. Všetky tieto položky majú za kľúčom bajt údajov. Položky sa zobrazia na vstupe nasledovne:
- Vyžaduje sa kľúč 1 a zobrazí sa s hodnotou 11.
- Kľúč 2 sa opakuje a zobrazí sa dvakrát s hodnotou 22 a výsledkom je hodnota {22, 22 }.
- Kľúč 3 je voliteľný a nezobrazí sa. Výsledkom je hodnota null.
- Kľúč 4 sa opakuje, ale nezobrazí sa. Výsledkom je hodnota {}.
- Kľúč 5 nie je súčasťou skupiny, ale zobrazí sa raz s hodnotou 55. Dodatočná funkcia sa volá s hodnotou kľúča 5 a vráti formát zodpovedajúci tejto hodnote (BinaryFormat.Byte). Hodnota 55 sa prečíta a zahodí.
používania
let
b = #binary({
1, 11,
2, 22,
2, 22,
5, 55,
1, 11
}),
f = BinaryFormat.Group(
BinaryFormat.Byte,
{
{1, BinaryFormat.Byte, BinaryOccurrence.Required},
{2, BinaryFormat.Byte, BinaryOccurrence.Repeating},
{3, BinaryFormat.Byte, BinaryOccurrence.Optional},
{4, BinaryFormat.Byte, BinaryOccurrence.Repeating}
},
(extra) => BinaryFormat.Byte
)
in
f(b)
výstupu
{11, {22, 22}, null, {}}
Príklad č. 2
Nasledujúci príklad ilustruje transformáciu hodnoty položky a predvolenú hodnotu položky. Opakujúca sa položka s kľúčom 1 zhŕňa zoznam hodnôt prečítaných pomocou List.Sum. Voliteľná položka s kľúčom 2 má predvolenú hodnotu 123 namiesto hodnoty null.
používania
let
b = #binary({
1, 101,
1, 102
}),
f = BinaryFormat.Group(
BinaryFormat.Byte,
{
{1, BinaryFormat.Byte, BinaryOccurrence.Repeating,
0, (list) => List.Sum(list)},
{2, BinaryFormat.Byte, BinaryOccurrence.Optional, 123}
}
)
in
f(b)
výstupu
{203, 123}