nOffset | (Long) Określa pozycję odczytywanej wartości w bloku danych.
Cała odczytywana wartość musi znajdować się w bloku danych. Pozycja zostanie odczytana albo 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ść w bajtach rezerwowanego obszaru w bloku danych przeznaczona dla zapisanego łańcucha.
Jeżeli łańcuch tekstowy o stałej długości zawiera w środku znak NULL, wtedy łańcuch tekstowy przy odczycie zostanie w danym miejscu zakończony i będzie krótszy. Jeżeli łańcuch tekstowy 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 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. |
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!"