PUT-STRING statement

Stores the null-terminated value of a CHARACTER or LONGCHAR expression at the specified memory location. If numbytes is specified, PUT-STRING will copy the requested number of bytes from the variable, regardless of whether there are embedded nulls. In this case PUT-STRING will not put a terminating null into the MEMPTR unless the last byte copied happens to be a null.

Syntax

PUT-STRING ( destination , position , [numbytes] ) = expression
destination
A variable of type RAW or MEMPTR. If destination is the Unknown value (?), it remains the Unknown value (?). If destination is a MEMPTR and its region is not allocated (by a SET-SIZE statement or by a Windows dynamic link library (DLL) or UNIX shared library routine), the AVM generates a run-time error.
position
An integer value greater than 0 that indicates the byte position where the AVM stores expression. If position is less than 1, the AVM generates a run-time error.

For a RAW destination, if position is greater than the length of destination, the AVM increases the length of destination to position plus the remaining bytes needed to store expression. The gap between the original destination length and position is padded with null bytes.

For a MEMPTR destination, if position is greater than the length of destination or does not leave sufficient room to store expression, the AVM generates a run-time error.

numbytes
An integer value greater than 0 that indicates how many bytes to copy from expression. If position plus numbytes is greater than the length of destination, the AVM generates a run-time error.
expression
An expression (a constant, field name, variable name, or expression) whose value is a CHARACTER or LONGCHAR. The AVM converts a LONGCHAR value to -cpinternal before it stores the value.

Notes

See also

GET-STRING function, LENGTH function, LENGTH statement, RAW function, RAW statement, SET-SIZE statement