Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Szintaxis
BinaryFormat.Choice(
binaryFormat as function,
chooseFunction as function,
optional type as nullable type,
optional combineFunction as nullable function
) as function
Rólunk
Olyan bináris formátumot ad vissza, amely egy már beolvasott érték alapján választja ki a következő bináris formátumot. A függvény által előállított bináris formátumérték szakaszokban működik:
- Az érték olvasásához a
binaryFormatparaméter által megadott bináris formátumot használja a rendszer. - Az érték a
chooseFunctionparaméter által megadott választási függvénynek lesz átadva. - A választási függvény az értéket vizsgálja, és egy második bináris formátumot ad vissza.
- A második bináris formátum egy második érték beolvasására szolgál.
- Ha az összevonási függvény meg van adva, a rendszer az első és a második értéket átadja az összevonási függvénynek, és az eredményül kapott értéket adja vissza.
- Ha az összevonási függvény nincs megadva, a második érték lesz visszaadva.
- A második érték lesz visszaadva.
Az opcionális type paraméter a választott függvény által visszaadott bináris formátum típusát jelzi. Megadható type any, type listvagy type binary. Ha a type paraméter nincs megadva, akkor type any lesz használva. Ha type list vagy type binary használ, a rendszer képes lehet streamelési binary vagy list értéket visszaadni pufferelt helyett, ami csökkentheti a formátum olvasásához szükséges memória mennyiségét.
1. példa
Olvassa el azoknak a bájtoknak a listáját, amelyekben az elemek számát az első bájt határozza meg.
Használat
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length)
)
in
listFormat(binaryData)
kimeneti
{3,4}
2. példa
Olvassa el azoknak a bájtoknak a listáját, amelyekben az elemek számát az első bájt határozza meg, és őrizze meg az első bájtolvasást.
Használat
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.Record([
length = length,
list = BinaryFormat.List(BinaryFormat.Byte, length)
])
)
in
listFormat(binaryData)
kimeneti
[length = 2, list = {3, 4}]
3. példa
Olvasson el egy bájtokból álló listát, ahol az elemek számát az első bájt határozza meg egy stream lista segítségével.
Használat
let
binaryData = #binary({2, 3, 4, 5}),
listFormat = BinaryFormat.Choice(
BinaryFormat.Byte,
(length) => BinaryFormat.List(BinaryFormat.Byte, length),
type list
)
in
listFormat(binaryData)
kimeneti
{3, 4}