Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Syntaks
BinaryFormat.Group(
binaryFormat as function,
group as list,
optional extra as nullable function,
optional lastKey as any
) as function
Om
Parameterne er som følger:
- Parameteren
binaryFormatangir binærformatet for nøkkelverdien. - Parameteren
groupgir informasjon om gruppen med kjente elementer. - Den valgfrie
extra-parameteren kan brukes til å angi en funksjon som returnerer en binær formatverdi for verdien etter en hvilken som helst nøkkel som var uventet. Hvisextra-parameteren ikke er angitt, utløses en feil hvis det finnes uventede nøkkelverdier.
Parameteren group angir en liste over elementdefinisjoner. Hver elementdefinisjon er en liste som inneholder 3-5 verdier, som følger:
- Nøkkelverdi. Verdien for nøkkelen som tilsvarer elementet. Dette må være unikt i settet med elementer.
- Elementformat. Det binære formatet som tilsvarer verdien for elementet. Dette gjør at hvert element kan ha et annet format.
- Elementhendelse. Den
BinaryOccurrence.Typeverdien for hvor mange ganger elementet forventes å vises i gruppen. Obligatoriske elementer som ikke finnes, forårsaker en feil. Obligatoriske eller valgfrie duplikatelementer håndteres som uventede nøkkelverdier. - Standard elementverdi (valgfritt). Hvis standard elementverdi vises i elementdefinisjonslisten og ikke er null, brukes den i stedet for standardverdien. Standardverdien for gjentatte eller valgfrie elementer er null, og standardverdien for gjentatte verdier er en tom liste { }.
- Elementverditransformering (valgfritt). Hvis funksjonen for transformasjon av elementverdi finnes i elementdefinisjonslisten og ikke er null, kalles den for å transformere elementverdien før den returneres. Transformeringsfunksjonen kalles bare hvis elementet vises i inndataene (det kalles aldri med standardverdien).
Eksempel 1
Følgende forutsetter en nøkkelverdi som er en enkelt byte, med fire forventede elementer i gruppen, som alle har en byte med data som følger nøkkelen. Elementene vises i inndataene som følger:
- Nøkkel 1 er obligatorisk, og vises med verdi 11.
- Nøkkel 2 gjentas, og vises to ganger med verdi 22, og resulterer i en verdi på { 22, 22 }.
- Nøkkel 3 er valgfritt, og vises ikke, og resulterer i en verdi på null.
- Nøkkel 4 gjentas, men vises ikke, og resulterer i en verdi av { }.
- Nøkkel 5 er ikke en del av gruppen, men vises én gang med verdi 55. Den ekstra funksjonen kalles med nøkkelverdien 5, og returnerer formatet som tilsvarer denne verdien (
BinaryFormat.Byte). Verdien 55 leses og forkastes.
bruk
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)
utdata
{11, {22, 22}, null, {}}
Eksempel 2
Følgende eksempel illustrerer elementverditransformeringen og standard elementverdi. Det gjentatte elementet med nøkkel 1 summerer listen over verdier som leses ved hjelp av List.Sum. Det valgfrie elementet med nøkkel 2 har en standardverdi på 123 i stedet for null.
bruk
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)
utdata
{203, 123}