Promotic

SetHexaString - metoda objektu PmBuffer

Popis:
Zápis datového bloku v podobě HexaString.
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. 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) Zakó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.
Viz také:
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

Historie:
Pm9.00.04: Vytvořeno
© MICROSYS, spol. s r.o.