SetHexaString - metoda objektu PmBuffer
Syntaxe:
Empty SetHexaString(Long nOffset, String sValue)
Parametry:
nOffset | (Long) Určuje pozici zapisované hodnoty v datovém bloku.
Platí, že celá zapisovaná hodnota musí ležet uvnitř datového bloku nebo se celá položka přidává na konec datového bloku. Položka se zapíše buď celá nebo vůbec.
>= 0 - Index (v bajtech, indexováno od 0) v datovém bloku.
-2 - Celá položka se přidá na konec datového bloku. Velikost datového bloku se zvětší o zapisovanou položku.
-4 - Použije se vnitřní automatická pozice (viz vlastnost AutoOffset), která ukazuje za poslední čtenou nebo zapisovanou hodnotu.
Tato operace posune vnitřní automatickou pozici za čtenou/zapisovanou hodnotu.
Pokud se položky čtou/zapisují jedna za druhou, pak není potřeba ručně určovat pozici, ale je lepší použít toto automatické pozicování. |
sValue | (String) Zapisovaný datový blok v podobě HexaString. |
---|
Poznámka:
Tato metoda je funkční i ve
Web obrazech.
HexaString (textový řetězec v hexadecimálním tvaru) lze používat dvojím způsobem:
1) Zobrazení čísla v hexadecimálním tvaru, kde vyšší řády jsou vlevo. To odpovídá uložení v paměti
Big-endian.
Jedná se o konverze hodnoty čísla do textového řetězce (a obráceně) pomocí formátovacího řetězce.
Pro využití
HexaString tímto způsobem se doporučuje používat objekt
PmFormat.
2) Kódování obsahu části paměti o určité velikosti (např. 1B, 2B, 4B …) v hexadecimálním tvaru. Potom záleží na způsobu uložení čísla v paměti.
Na procesorech
Intel a
AMD (architektura
x86 nebo
x64) se používá tzv.
Little-endian, kde nižší řády jsou vlevo.
Pro využití
HexaString tímto způsobem se doporučuje používat výhradně objekt
PmBuffer, který umí pracovat s
Little-endian i
Big-endian.
Příklad:
Vytvoření datového bloku, postupný zápis 4, 2 a 1-bajtové celočíselné hodnoty (celkem 7 bajtů), a nakonec čtení obsahu celého datového bloku v podobě
HexaString.
Opačný příklad viz metoda
GetHexaString.
JavaScriptVyber a zkopíruj do schránky
var b = Pm.CreatePmBuffer();
b.SetHexaString(-2, "40302010605070");
var val1 = b.GetInt32(0);
// Výsledkem bude hodnota 0x10203040
var val2 = b.GetInt16(-4);
// Výsledkem bude hodnota 0x5060
var val3 = b.GetUint8(-4);
// Výsledkem bude hodnota 0x70