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
For examples of how to use the PUT-STRING statement, see the PUT-BYTE statement reference entry.
For more information on accessing DLL and UNIX shared library routines from ABL, see OpenEdge Development: Programming Interfaces.