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 pozycja musi znajdować się w bloku danych lub cała pozycja zostanie dodana na koniec bloku danych. Pozycja zostanie zapisana 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ść rezerwowanego obszaru w bloku danych przeznaczona dla łańcucha w bajtach.
Ł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 po prawej stronie zostanie wypełniony 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 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 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);

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