Update cookies preferences
Promotic

SetStringFix - metoda obiektu PmBuffer

Opis:
Zapis łańcucha tekstowego o stałej długości.
Składnia:
Empty SetStringFix(Long nOffset, String sValue, Long nLength, [Long nPad], [Long nEncoding])
Parametry:
nOffset(Long) Określa pozycję zapisywanej wartości w bloku danych.
Cała zapisywana wartość musi znajdować się w bloku danych lub cała pozycja zostanie dodana na koniec bloku danych. Pozycja zostanie zapisana albo w całości lub wogóle.
>= 0 - Indeks (w bajtach, indeksowane od 0) w bloku danych.
-2 - Cała pozycja zostanie dodana na koniec bloku danych. Wielkość bloku danych zostanie zwiększona o zapisywaną pozycję.
-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.
sValue(String) Zapisywany łańcuch tekstowy.
nLength(Long) Stała wielkość w bajtach rezerwowanego obszaru w bloku danych przeznaczona dla łańcucha.
Łańcuch tekstowy nie zawiera na końcu znak NULL, ale jeżeli jego rzeczywista długość jest mniejsza od określonej stałej wielkości, wtedy zostanie wypełniony z prawej określonym znakiem nPad (zazwyczaj NULL lub spacja) aż do końca wymaganej stałej długości.
nPad[opcjonalne] (Long) Wartość znaku, którym w przypadku zapotrzebowania łańcuch tekstowy zostanie uzupełniony z prawej strony aż do wymaganej stałej długości.
Wartość 0 (domyślnie) to znak NULL.
Wartość 32 to znak spacja.
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 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 (tzn. narodowo zależne znaki) 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.
3 - (UTF-16 BE) (Big Endian) 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.
CodePage - Każdy znak jest przechowywany w jednym lub więcej bajtach zgodnie z określoną stroną kodową (CodePage). Strona kodowa jest określana przez jej numer, który jest ważny we wszystkich systemach operacyjnych i programach. Na przykład 1250 dla Windows 1250 lub 852 dla Latin 2.
Notatka:
Metoda ta działa także w Web panelach.
Ograniczenia dla Web panele:
nEcoding=0 (ANSI) - kodowanie nie działa dla znaków o wartości większe niż 127
nEcoding=1 (UTF-8) - kodowanie nie działa w Internet Explorer
nEcoding=3 (UTF-16 BE) - kodowanie nie działa
nEcoding=CodePage - kodowanie nie działa
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);

Historia:
Pm9.00.30: Nowa opcja 3 - (UTF-16 BE) w parametrze nEncoding.
Pm9.00.04: Wytworzono
© MICROSYS, spol. s r.o.