Promotic

SetStringFix - metoda objektu PmBuffer

Popis:
Zápis textového řetězce s pevnou délkou.
Syntaxe:
Empty SetStringFix(Long nOffset, String sValue, Long nLength, [Long nPad], [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.
nLength(Long) Pevná velikost v bajtech vyhrazeného prostoru v datovém bloku pro textový řetězec.
Textový řetězec není ukončen znakem NULL, ale pokud je jeho skutečná délka menší než zadaná pevná velikost, pak je zprava vyplněn zadaným znakem nPad (obvykle NULL nebo mezera) až do požadované pevné délky.
nPad[nepovinné] (Long) Hodnota znaku, kterým bude textový řetězec v případě potřeby doplněn zprava až do požadované pevné délky.
Hodnota 0 (přednastaveno) je znak NULL.
Hodnota 32 je znak mezera.
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ší.
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í nefunguje pro znaky s hodnotou větší než 127
nEcoding=1 (UTF-8) - kódování nefunguje v Internet Exploreru.
nEcoding=CodePage - kódování nefunguje
Viz také:
Příklad:
JavaScriptVyber a zkopíruj do schránky

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

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