Promotic

GetStringFix - metoda obiektu PmBuffer

Opis:
Odczyt łańcucha tekstowego o stałej długości.
Składnia:
String GetStringFix(Long nOffset, Long nLength, [Long nEncoding])
Parametry:
nOffset(Long) Określa pozycję odczytywanej wartości w bloku danych.
Cała odczytywana pozycja musi znajdować się w bloku danych. Pozycja zostanie odczytana w całości lub wogóle.
>= 0 - Indeks (w bajtach, indeksowane od 0) w bloku danych.
-4 - Zostanie zastosowana wewnętrzna automatyczna pozycja (patrz właściwość AutoOffset), która wskazuje ostatnią odczytywaną lub zapisywaną wartość.
Operacja ta przesunie wewnętrzną automatyczną pozycję za odczytywaną/zapisywaną wartość.
Jeżeli pozycje są odczytywane/zapisywane po kolei za sobą, wtedy nie trzeba ręcznie określać pozycję, ale jest lepiej zastosować automatyczne pozycjonowanie.
nLength(Long) Stała wielkość rezerwowanego obszaru w bloku danych przeznaczona dla zapisanego łańcucha w bajtach.
Jeżeli łańcuch o stałej długości zawiera w środku znak NULL, wtedy łańcuch podczas odczytu zostanie w danym miejscu zakończony i będzie krótszy.
Jeżeli łańcuch nie zawiera znak NULL, wtedy jako łańcuch będzie odbierana cała zawartość określonej stałej długości.
nEncoding[opcjonalne] (Long) Kodowanie łańcucha tekstowego w bloku danych.
0 (domyślnie) - (ANSI) Każdy znak jest zapisany w jednym bajcie. Wartości 0 do 127 tworzą tabelkę znaków ASCII, ich znaczenie nie zmienia się. Wartości 128 do 255 posiadają różne znaczenie w różnych lokalizacjach (strony kodowe, np. Windows CP-1250).
1 - (UTF-8) Każdy znak jest zapisany w 1, 2 lub 4 bajtach, to znaczy posiada zmienną długość. Zaletą jest to, iż standardowe znaki łacińskie (ASCII) są zapisane w jednym bajcie. W większej ilości bajtów są zapisane dopiero znaki diakrytyczne oraz specjalne znaki. Zapis ten jest w praktyce bardzo oszczędny.
Ten rodzaj kodowania to jest stosowany przede wszystkim do wymiany danych, trwałości danych oraz w Webie.
2 - (UTF-16) Każdy znak jest zapisany w 2 bajtach (lub ewentualnie w 4 bajtach) tzn. posiada stałą długość. Zaletą jest to, iż większość znaków jest zapisana w 2 bajtach, czyli praca z takimi łańcuchami jest prosta (ponieważ praktycznie posiadają stałą długość).
Ten rodzaj kodowania jest wewnętrznie stosowany w SO Windows, ale również w języku JavaScript lub .NET, ponieważ manipulacja z łańcuchami o stałej długości jest łatwiejsza.
Notatka:
Metoda ta działa także w Web panelach. W przypadku nEcoding=0 nie działa kodowanie znaków o większej wartości niż 127 a w przypadku InternetExplorera nie działa kodowanie UTF-8 (nEcoding=1).
Patrz również:
Przykład:
JavaScriptWybierz oraz skopiuj do schowka

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!"

Historia:
Pm9.00.04: Wytworzono
© MICROSYS, spol. s r. o.