Value = PmBuffer.GetStringFix(nOffset, nLength, nEncoding)
|nOffset||(Long) Defines 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 data block.
-4 - The internal automatic position is used (see AutoOffset). It points behind the last read or written value and increases continually.
If the items are read/written one by one then it is not necessary to define the position, but it is handy to use this automated positioning.
|nLength||(Long) Fixed lenght of reserver space in the data block for saved string in bytes. |
If there is a NULL character inside the fixed lenght string then the string reading is terminated on this spot and therefore is shorter.
If the string does not contain any NULL character then it is considered to be the while content of defined fixed lenght.
|nEncoding||[optional] (Long) Encoding of character 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 CP-1250).
1 - (UTF-8) Each character is stored in 1, 2 or 4 bytes, i.e has variable lenght. The advantage is that the latin characters (ASCII) are stored in a single byte. Only special characters and characters with diacritics 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 lenght. The advantage is that most characters are stored in 2 bytes so these strings are easy to work with (because of the fixed lenght).