nOffset | (Long) Určuje pozici čtené hodnoty v datovém bloku.
Platí, že celá čtená hodnota musí ležet uvnitř datového bloku. Položka se vyčte buď celá nebo vůbec. >= 0 - Index (v bajtech, indexováno od 0) v datovém bloku.
-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í. |
---|---|
nLength | (Long) Pevná velikost v bajtech vyhrazeného prostoru v datovém bloku pro uložený řetězec.
Pokud textový řetězec pevné délky obsahuje znak NULL, pak je textový řetězec při čtení na tomto místě ukončen a je kratší. Pokud textový řetězec neobsahuje znak NULL, pak jako řetězec je chápán celý obsah zadané pevné délky. |
nEncoding | [nepovinné] (Long) Kódování textového řetězce v datovém bloku.
0 (přednastaveno) - (ANSI) Každý znak je uložený v jednom bajtu. Hodnoty 0 až 127 tvoří ASCII tabulku znaků, jejichž význam je neměnný. Hodnoty 128 až 255 mají různý význam v různých lokalizacích (kódové stránky, např. Windows 1250).
1 - (UTF-8) Každý znak je uložen v 1, 2 nebo 4 bajtech, to znamená má proměnlivou délku. Výhodou je, že běžné znaky latinky (ASCII) jsou uloženy v jednom bajtu. Ve více bajtech jsou uloženy až znaky s diakritikou (tzn. národnostně závislé znaky) a speciální znaky. Takže toto uložení je v praxi velmi úsporné.
Toto kódování se používá zejména pro výměnu dat, persistenci dat a na Webu. 2 - (UTF-16) Každý znak je uložen ve 2 bajtech (nebo vyjímečně 4 bajtech), tzn. má v praxi pevnou délku. Výhodou je, že většina znaků je uložena ve 2 bajtech, takže se s těmito řetězci dobře pracuje (protože mají prakticky pevnou délku).
Toto kódování se interně používá v OS Windows, ale i v jazyce JavaScript nebo .NET, protože je manipulace s těmito pevnými řetězci snazší. 3 - (UTF-16 BE) (Big Endian) Každý znak je uložen ve 2 bajtech (nebo vyjímečně 4 bajtech), tzn. má v praxi pevnou délku. Výhodou je, že většina znaků je uložena ve 2 bajtech, takže se s těmito řetězci dobře pracuje (protože mají prakticky pevnou délku).
Toto kódování se interně používá v OS Windows, ale i v jazyce JavaScript nebo .NET, protože je manipulace s těmito pevnými řetězci snazší. |
var oBuf = Pm.CreatePmBuffer();
var s1 = "Help me!";
oBuf.SetStringFix(-2, s1, 8, 0, 1);
oBuf.AutoOffset = 0;
var nSize = oBuf.GetSize();
var val = oBuf.GetStringFix(-4, nSize, 1);
// val = "Help me!"