Len returns the length of an expression or the size of a
DataType, in bytes.
In the first form, if
expression is of type
String,
WString or
ZString, the length of the string in characters will be returned. If the expression is of a user defined type, an
Operator Len compatible with that data type is called. Otherwise, the size of the
expression's data type in bytes is returned.
In the second form, if
expression is
ZString or
WString, the size in bytes of an ASCII or Unicode character is returned, respectively. If
datatype is
String, the size of the string descriptor type is returned.
If there is both a user defined type and a variable visible with the same name in the current scope, the user defined type takes precedence over the variable. To ensure that the
Len takes the variable instead of the user defined type, wrap the argument to
Len with parentheses to force it to be seen as an expression. For example
Len((variable)).
Note: When used with array names,
Len returns the length of the array datatype, but not the total number of its elements.
For clarity, it is recommended that you avoid this potential confusion, and use
Len on the array datatype doing
Len(Typeof(array)), rather than the array name only doing
Len(array).
The
Len unary
Operator can be overloaded with user defined types.