Setting Substrings, Pieces, and List Items
You've seen that you can use $Extract, $Piece, and $List to retrieve parts of strings. You can also use these three functions along with Set to set substrings into strings. All the examples start by showing the use of the functions on variables that don't exist yet.
Set $Extract will pad on the left with spaces if you use it to set a substring in the middle of an empty string. It extracts the characters specified and replaces them with the supplied substring, whether or not the lengths of the old and new strings match.
USER>set $extract(empty, 4) = "abcde"
USER>write empty
abcde
USER>set $extract(empty, 4, 5) = "12345"
USER>write empty
12345cde
USER>
Set $Piece will add enough delimiters so that it can place the substring at the proper piece of an empty string. A substring can also have pieces, using a different delimiter. You can nest $Piece functions in order to retrieve subpieces.
USER>set $piece(empty, "^", 3) = "abcde" write empty
^^abcde
USER>write $length(empty, "^")
3
USER>set $piece(empty, "^", 2) = "9/9/1999" write empty
^9/9/1999^abcde
USER>write $piece($piece(empty, "^", 2), "/", 3)
1999
USER>
Set $List will add enough list items so that it can place the substring as the proper item in an empty list. A list item can also be a list. You can nest $List functions in order to retrieve sublists.
USER>set $list(empty, 3) = "abcde"
USER>write $listlength(empty)
3
USER>set $list(empty, 2) = $listbuild(9, 9, 1999)
USER>write $list($list(empty, 2), 3)
1999
USER>