====== FieldStore function ======
==== Description ====
Use to replace, delete, or insert substrings in a string.
==== Syntax ====
//result// = **FieldStore**(//source_string, delimiter, occurrence, field, string//)
==== Parameters ====
The FieldStore function has the following parameters.
^Parameter^Description^
|//source_string//|Specifies the string that is to be searched, then modified.|
|//Delimiter//|Any single ASCII character including field, value, or subvalue marks. This value determines what constitutes a "field" in the values of both //source_string// and //string//.|
|//Occurrence//|Processing starts at the ordinal substring designated by //occurrence//. The value of //delimiter// determines the end of each "field." If the number of substrings within //source_string// is less than the value of occurrence, //source_string// will be padded with the necessary number of null substrings, before FieldStore is executed.|
|//Field//|Specifies the number of substrings in string to apply to //source_string//. As with //source_string//, the value of //delimiter// determines the end of a substring. The value of //field// determines the operation in //source_string//.\\ \\ __Value__ __Description__\\ Positive number - Moves that number of substrings from string to //source_string//.\\ 0 - Inserts the entire string in //source_string//. The insertion occurs at the substring indicated by //occurrence.//\\ Negative number - Inserts the entire string in //source_string//. The field specifies the number of substrings to replace in //source_string.//|
|//String//|Contains the new string values to store in //source_string//.|
==== See Also ====
[[field|Field()]], [[replace|Replace()]], [[angle_brackets_operator|< > (Angle Brackets operator]]), [[delete_function|Delete()]], [[insert|Insert()]]
==== Example ====
/* The following routine changes a phone number, where the area code remains the same. */
source = '206-111-2222' ;* old number
delimiter = '-'
occur = 2 ;* start with 2nd field
field = 2 ;* replace 2 fields
string = '333-4444' ;* new number
new_number = FieldStore (source, delimiter, occur, field, string)
* Example using fieldstor to insert, replace, and delete the second item in a list
list = 'AAA BBB CCC DDD'
value = 'XXX'
delim = " "
nth_pos = 2
If nth_pos Lt 0 Then Return ""
* Insert a value before the nth
inserted = fieldstore(list, delim, nth_pos, 0, value) ; * 'XXX AAA BBB CCC DDD'
replaced = fieldstore(list, delim, nth_pos, 1, value) ; * 'AAA XXX CCC DDD'
* Deleting is unintuitive. To delete an item, you can replace two items with one
* For example, to delete the nth element, replace n-1th and the nth with the n-1th
* A negative index in the 4th parameter indicates removal.
If nth_pos Gt 1 Then
prev_pos = nth_pos - 1
deleted = fieldstore(list, delim, prev_pos, -2, Field(list, delim, prev_pos) ) ; * 'AAA CCC DDD'
End Else
* deleting the lead item, use field to get everything but the first item
deleted = field(list, delim, 2, Fieldcount(list, delim ) )
End