nOffset | (Long) Specifies the position of read value in the data block.
The read value must be inside the data block. The item is read either whole or not read at all. >= 0 - Index (in bytes, zero-based index) in the data block.
-4 - The internal automatic position is used (see the AutoOffset property). It points behind the last read or written value.
This operation shifts the internal automatic position behind the read/written value. If the items are read/written one by one then it is not necessary to define the position manually, but it is better to use this automated positioning. |
---|---|
nLength | (Long) Fixed length in bytes of reserver space in the data block for saved string.
If there is a NULL character inside the text string of fixed length then the text string on reading is terminated on this spot and therefore is shorter. If the text string does not contain any NULL character then it is considered to be the while content of defined fixed length. |
nEncoding | [optional] (Long) Encoding of a text string in the data block.
0 (default) - (ANSI) Each character is stored in a single byte. The values from 0 to 127 represent an ASCII character table that is not changing in meaning. The values from 128 to 255 have different meaning in various localizations (code pages, e.g. Windows 1250).
1 - (UTF-8) Each character is stored in 1, 2 or 4 bytes, it means has variable length. The advantage is that the latin characters (ASCII) are stored in a single byte. Only special characters and characters with diacritics (i.e. national dependent characters) are stored in multiple bytes. This storage is therefore very efficient.
This encoding is commonly used for data exchange, data persistence and on the Web. 2 - (UTF-16) Each character is stored in 2 bytes (or exceptionally in 4 bytes), i.e. it has a fixed length. The advantage is that most characters are stored in 2 bytes so these strings are easy to work with (because of the fixed length).
This encoding is used internally in Windows OS, but also in the JavaScript language or .NET, because the mannipulation with these fixed strings is easier. 3 - (UTF-16 BE) (Big Endian) Each character is stored in 2 bytes (or exceptionally in 4 bytes), i.e. it has a fixed length. The advantage is that most characters are stored in 2 bytes so these strings are easy to work with (because of the fixed length).
This encoding is used internally in Windows OS, but also in the JavaScript language or .NET, because the mannipulation with these fixed strings is easier. |
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!"