Promotic
WikipediaLinkedInYoutubeTwitterFacebook

SetStringFix - metoda objektu PmBuffer

Popis:
Zápis znakového řetězce s pevnou délkou.
Syntaxe:
Empty SetStringFix(Long nOffset, String sValue, Long nLength, [Long nPad], [Long nEncoding])
Volání:
PmBuffer.SetStringFix(nOffset, sValue, nLength, nPad, 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 pak zvětší o zapisovanou položku.
-4 - Použije se vnitřní automatická pozice (viz AutoOffset), která ukazuje za poslední čtenou nebo zapisovanou hodnotu a automaticky se zvětšuje.

Pokud se čtou/zapisují položky jedna za druhou, pak není potřeba ručně určovat pozici, ale je lepší použít toto automatické pozicování.

sValue(String) Zapisovaný řetězec.
nLength(Long) Pevná velikost vyhrazeného prostoru v datovém bloku pro řetězec v bajtech. Ř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 (typicky NULL nebo mezera) až do požadované pevné délky.
nPad[nepovinné] (Long) Hodnota znaku, kterým bude ř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í znakové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ří tzv 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 CP-1250).
1 - (UTF-8) Každý znak je uložen v 1, 2 nebo 4 bajtech, tzn má proměnlivou délku. Výhodou je, že běžné znaky latinky (ASCII) jsou uloženy v 1 bajtu. Ve více bajtech jsou uloženy až znaky s diakritikou 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á ve Windows, ale i v JavaScript nebo .NET, protože je manipulace s těmito pevnými řetězci snazší.

Poznámka:
Tato metoda je funkční i ve Web obrazech. Pro nEcoding=0 nefunguje kódování znaků s vyšší hodnotou než 127 a pro InternetExplorer nefunguje kódování UTF-8 (nEcoding=1).

Historie:
Pm9.00.04: Vytvořeno
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice