$ListCmp: Difference between revisions
mNo edit summary |
m (→Usage notes) |
||
Line 23: | Line 23: | ||
<p>%result is set either to the number of items in the output $list, or to a negative error code if an error has occurred.</p> | <p>%result is set either to the number of items in the output $list, or to a negative error code if an error has occurred.</p> | ||
===Error codes=== | |||
<p class="code">-3 - No room to create $list items | |||
(if LISTFC <var>$SirParm</var> parameter not set) | |||
-5 - Required argument not specified | |||
-6 - $List identifier invalid | |||
-7 - Invalid synchronization count | |||
-8 - Input $list 1 has invalid format | |||
</p> | |||
==Usage notes== | ==Usage notes== | ||
<ul> | |||
<li>The output $list produced by <var>$ListCmp</var> is in a format that is suitable as input to <var>[[$ListUpd]]</var>. For example, if input $list 1 contains: | <li>The output $list produced by <var>$ListCmp</var> is in a format that is suitable as input to <var>[[$ListUpd]]</var>. For example, if input $list 1 contains: | ||
Line 57: | Line 67: | ||
The first input $list to <var>$ListCmp</var> can be most easily created with the <var>$ProcDat</var> function using the third <var>$ProcDat</var> parameter to indicate a sequence number. | The first input $list to <var>$ListCmp</var> can be most easily created with the <var>$ProcDat</var> function using the third <var>$ProcDat</var> parameter to indicate a sequence number. | ||
</ul> | </ul> | ||
==Products authorizing {{PAGENAMEE}}== | ==Products authorizing {{PAGENAMEE}}== |
Revision as of 21:46, 18 July 2013
Compare two $lists and produce $list describing differences
Note: Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListCmp function is the Compare function.
This function compares two $lists and produces a $list describing the differences between the $lists.
The $ListCmp function accepts five arguments and returns a numeric result. It is a callable $function.
The first argument is the identifier of a $list containing data with 8 byte sequence numbers. This is a required argument.
The second argument is the identifier of a $list containing data without 8 byte sequence numbers. This is a required argument.
The third argument is the identifier of the output $list. This is a required argument.
The fourth argument is a number indicating a synchronization count. When the two input $lists are being compared and a difference has been found, this count indicates the number of lines that must match before they are treated as a true match. This is an optional argument and defaults to 1.
The fifth argument is a pad character to be used to pad any input line that is too short. This is an optional argument and defaults to blank.
Syntax
[%RESULT =] $ListCmp(list_id1, list_id2, list_id3, sync_count, pad)
%result is set either to the number of items in the output $list, or to a negative error code if an error has occurred.
Error codes
-3 - No room to create $list items (if LISTFC $SirParm parameter not set) -5 - Required argument not specified -6 - $List identifier invalid -7 - Invalid synchronization count -8 - Input $list 1 has invalid format
Usage notes
- The output $list produced by $ListCmp is in a format that is suitable as input to $ListUpd. For example, if input $list 1 contains:
00010000B 00020000 00030000PRINT 'QUENTIN COMPSON' 00040000 00050000END
and input $list 2 contains:
B PRINT 'QUENTIN COMPSON' PRINT 'HARVARD DIVING TEAM, 1908' END
Then this statement:
%RESULT = $ListCmp(%INLIST1, %INLIST2, %OUTLIST)
results in the $list identified by %OUTLIST containing:
./ I 00030000 $ 00030001 00010000 PRINT 'HARVARD DIVING TEAM, 1908'
The first input $list to $ListCmp can be most easily created with the $ProcDat function using the third $ProcDat parameter to indicate a sequence number.