Update cookies preferences
Promotic

SetStringVar - metoda objektu PmBuffer

Popis:
Zápis textového řetězce proměnlivé délky (ukončený znakem NULL).
Syntaxe:
Empty SetStringVar(Long nOffset, String sValue, [Long nAttr], [Long nEncoding])
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ý textový řetězec.
nAttr[nepovinné] (Long) Dodatečné parametry.
0 (přednastaveno) - Textový řetězec se uloží se znakem NULL na konci.
1 - Textový řetězec se uloží bez koncového znaku NULL.
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ší.
CodePage - Každý znak je uložený v jednom nebo více bajtech podle zadané kódové stránky (CodePage). Kódová stránka je určena svým číslem, které je platné napříč všemi operačními systémy a programy. Například 1250 pro Windows 1250 nebo 852 pro Latin 2.
Poznámka:
Tato metoda je funkční i ve Web obrazech.
Omezení pro Web obrazy:
nEcoding=0 (ANSI) - kódování není funkční pro znaky s hodnotou větší než 127
nEcoding=1 (UTF-8) - kódování není funkční v Internet Exploreru
nEcoding=3 (UTF-16 BE) - kódování není funkční
nEcoding=CodePage - kódování není funkční
Viz také:
Příklad:
JavaScriptVyber a zkopíruj do schránky

var oBuf = Pm.CreatePmBuffer();
var s1 = "Help me!";
oBuf.SetStringVar(-2, s1, 0, 1);

Historie:
Pm9.00.30: Nová volba 3 - (UTF-16 BE) v parametru nEncoding.
Pm9.00.04: Vytvořeno
© MICROSYS, spol. s r.o.