$List Diff Item: Difference between revisions
m (1 revision) |
mNo edit summary |
||
Line 2: | Line 2: | ||
<span class="pageSubtitle"><section begin="desc" />Differences between $list and delimited $list item<section end="desc" /></span> | <span class="pageSubtitle"><section begin="desc" />Differences between $list and delimited $list item<section end="desc" /></span> | ||
<p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $List_Diff_Item function is [[ | <p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $List_Diff_Item function is the [[ItemDifferenceList (Stringlist function)]].</p> | ||
This function determines which items in a $list do not appear as an entry in a separator delimited item in a second $list and places them on a third $list. In some sense this is the "difference | This function determines which items in a $list do not appear as an entry in a separator delimited item in a second $list and places them on a third $list. In some sense this is the "difference" between a $list and a separator delimited $list item. | ||
$List_Diff_Item accepts five arguments and returns a numeric result. It is a callable $function ( | $List_Diff_Item accepts five arguments and returns a numeric result. It is a callable $function (see [[Calling Sirius Mods $functions]]). | ||
The first argument is the identifier of a $list for which each item is to be compared against the delimited item in the second $list. This is a required argument. | The first argument is the identifier of a $list for which each item is to be compared against the delimited item in the second $list. This is a required argument. | ||
Line 17: | Line 17: | ||
The fifth argument is the delimiter character or characters to be used in the scanning the indicated $list item. It defaults to comma (<tt>,</tt>), and it cannot be the null string. Specifying this argument as a null string is the same as either not specifying the argument or specifying it as a comma. | The fifth argument is the delimiter character or characters to be used in the scanning the indicated $list item. It defaults to comma (<tt>,</tt>), and it cannot be the null string. Specifying this argument as a null string is the same as either not specifying the argument or specifying it as a comma. | ||
==Syntax== | ==Syntax== | ||
<p class="syntax"><section begin="syntax" /> [%RESULT =] $List_Diff_Item(list_id1, list_id2, list_id3, | |||
<p class="syntax"><section begin="syntax" /> [%RESULT =] $List_Diff_Item(list_id1, list_id2,- | |||
list_id3, list_item2, separator) | |||
<section end="syntax" /></p> | <section end="syntax" /></p> | ||
<p class="caption">$List_Diff_Item Function | <p class="caption">$List_Diff_Item Function | ||
Line 25: | Line 27: | ||
<p class="caption">%RESULT is set to the number of items added to the output $list, or it is set to a negative error code if an error has occurred.</p> | <p class="caption">%RESULT is set to the number of items added to the output $list, or it is set to a negative error code if an error has occurred.</p> | ||
For an example of the use of this function, suppose $list %LIST1 contains six items: | |||
<p class="code"> BBB | <p class="code"> BBB | ||
CC | CC | ||
Line 36: | Line 37: | ||
</p> | </p> | ||
And $list %LIST2 contains two items: | |||
<p class="code"> X,Y,Z, | <p class="code"> X,Y,Z, | ||
AAA,DDDD,FFF, | AAA,DDDD,FFF, | ||
</p> | </p> | ||
Then this statement: | |||
<p class="code"> %CNT = $LIST_DIFF(%LIST1, %LIST2, %LIST3, 2) | <p class="code"> %CNT = $LIST_DIFF(%LIST1, %LIST2, %LIST3, 2) | ||
</p> | </p> | ||
results in %LIST3 having three items: | |||
<p class="code"> BBB | <p class="code"> BBB | ||
CC | CC | ||
E | E | ||
</p> | </p> | ||
%CNT is set to <tt>3</tt>. | %CNT is set to <tt>3</tt>. | ||
If a value occurs multiple times in the first input $list, it will appear either the same number of times in the output $list or not at all, depending on whether it appears in the separator- delimited item in the second $list. | If a value occurs multiple times in the first input $list, it will appear either the same number of times in the output $list or not at all, depending on whether it appears in the separator- delimited item in the second $list. | ||
For example, if $list %LIST1 contains eight items: | |||
<p class="code"> TCP/IP | <p class="code"> TCP/IP | ||
SNA | SNA | ||
Line 72: | Line 71: | ||
</p> | </p> | ||
And $list %LIST2 contains three items: | |||
<p class="code"> Y2K**SECURITY**PRODUCTIVITY**METRICS** | <p class="code"> Y2K**SECURITY**PRODUCTIVITY**METRICS** | ||
IND$FILE**LU6.2**SNA**MQSERIES**LU2** | IND$FILE**LU6.2**SNA**MQSERIES**LU2** | ||
GIF**JPEG**WAV**PDF**HTML** | GIF**JPEG**WAV**PDF**HTML** | ||
</p> | </p> | ||
Then this statement: | Then this statement: | ||
Line 86: | Line 82: | ||
</p> | </p> | ||
Results in $list %LIST3 having five items: | |||
<p class="code"> TCP/IP | <p class="code"> TCP/IP | ||
CORBA | CORBA | ||
Line 96: | Line 91: | ||
</p> | </p> | ||
%CNT is set to <tt>5</tt>. | |||
<p class="code"> | |||
-3 - No room in CCATEMP | -3 - No room in CCATEMP | ||
-5 - Required argument not specified | -5 - Required argument not specified |
Revision as of 20:02, 10 February 2011
<section begin="desc" />Differences between $list and delimited $list item<section end="desc" />
Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $List_Diff_Item function is the ItemDifferenceList (Stringlist function).
This function determines which items in a $list do not appear as an entry in a separator delimited item in a second $list and places them on a third $list. In some sense this is the "difference" between a $list and a separator delimited $list item.
$List_Diff_Item accepts five arguments and returns a numeric result. It is a callable $function (see Calling Sirius Mods $functions).
The first argument is the identifier of a $list for which each item is to be compared against the delimited item in the second $list. This is a required argument.
The second argument is the identifier of a $list containing the item containing a delimiter separated string that is to be scanned for each item from the first $list. This is a required argument.
The third argument is the identifier of a $list to contain any items from the first $list that do not appear as a delimiter separated entry in the indicated item from the second $list. The $list specified by the third argument is cleared before $List_Diff_Item does any processing. This is a required argument.
The fourth argument is the number of the item from the second $list containing a delimiter separated string that is to be scanned for each item from the first $list. This is a required argument.
The fifth argument is the delimiter character or characters to be used in the scanning the indicated $list item. It defaults to comma (,), and it cannot be the null string. Specifying this argument as a null string is the same as either not specifying the argument or specifying it as a comma.
Syntax
<section begin="syntax" /> [%RESULT =] $List_Diff_Item(list_id1, list_id2,- list_id3, list_item2, separator) <section end="syntax" />
For an example of the use of this function, suppose $list %LIST1 contains six items:
BBB CC DDDD AAA E FFF
And $list %LIST2 contains two items:
X,Y,Z, AAA,DDDD,FFF,
Then this statement:
%CNT = $LIST_DIFF(%LIST1, %LIST2, %LIST3, 2)
results in %LIST3 having three items:
BBB CC E
%CNT is set to 3.
If a value occurs multiple times in the first input $list, it will appear either the same number of times in the output $list or not at all, depending on whether it appears in the separator- delimited item in the second $list.
For example, if $list %LIST1 contains eight items:
TCP/IP SNA CORBA MQSERIES SNA TCP/IP IPX TCP/IP
And $list %LIST2 contains three items:
Y2K**SECURITY**PRODUCTIVITY**METRICS** IND$FILE**LU6.2**SNA**MQSERIES**LU2** GIF**JPEG**WAV**PDF**HTML**
Then this statement:
%CNT = $List_Diff_Item(%LIST1, %LIST2, %LIST3, , '**')
Results in $list %LIST3 having five items:
TCP/IP CORBA TCP/IP IPX TCP/IP
%CNT is set to 5.
-3 - No room in CCATEMP -5 - Required argument not specified -6 - $List identifier invalid -7 - Invalid item number