mem_get

mem_get reads bytes from a string and converts the data.

rvValues = mem_get(ssString, pos, ssType, count)
rvValues = mem_get(ssString, pos, ssType, count, nRecLen)
rvValues = mem_get(ssString, pos, ssType, count, rvOptions)
ssSubString = mem_get(ssString, pos, count)

Return Value

rvValues is a vector of length count.

Parameters

ssString

ssString is a scalar string.

pos

pos is a number between 1 and mem_len(ssString). The number sets the first character to start reading.

ssType

Is the data type of the data:

Type Description
“int8” or “char” One signed byte (-127 bis 127).
“uint8” or “uchar” One unsigned byte (0 bis 255).
“wchar_t” UTF-16 Unicode character (2 bytes).
“int16” 16-bit integer (2 bytes).
“uint16” 16-bit unsigned integer (2 bytes).
“int32” 32-bit integer (4 bytes).
“uint32” 32-bit unsigned integer (4 bytes).
“int64” 64-bit integer (8 bytes). Because UniScript stores 64-bit integers in double format, only (approx.) 52 bits are valid.
“uint64” 64-bit unsigned integer (8 bytes). Because UniScript stores 64-bit integers in double format, only (approx.) 52 bits are valid.
“float” 32-bit real values (4 bytes).
“double” 64-bit real values (8 bytes).
count

count is the number of values to read.

nRecLen

nRecLen is the number of bytes to skip before reading the next value (distance between two values).

rvOptions

rvOptions is a vector [nRecLen, nBits, nBitOffset, bBigEndian].

nRecLen is the number of bytes to skip before reading the next value (distance between two values). Default is 0, if rvOptions is not specified.

nBits: 0: The data type specified in ssType is used. For example 32 bits for “int32”. 1 .. 64: Number of bits to read. The value must be smaller or equal to the size of the data type specified in ssType. Example: * For ssType = “int16” nBits can be a number between 9 and 16 * For ssType = “int32” nBits can be a number between 17 and 32.

nBitOffset: 0 .. 7. Default is 0, if rvOptions is not specified.

bBigEndian: 1: Big Endian byte order (Motorola), 0: Little Endian byte order (Intel). Default is 0, if rvOptions is not specified.

Example

// Read 100 floats from Buffer:
// Read Buffer from file, read the first value starting at positon 20 byte.
// The distance to the next value is 72 bytes.
// Read all 100 values.
data_buffer = fread(fp, "char8", lenbuffer);
rvY = mem_get(data_buffer, 20, "float", 100, 72);

See also mem_set.

History

Version Description
R2012.4 New parameter rvOptions an call with 3 parameters to extract a part of a substring. New types in ssType (“int8” and “uint8”).
5.8.2 New parameter nRecLen.
5.0.0 New type “wchar_t”.
4.2.0 New.

id-1871369