$ListCmp: Difference between revisions
m (1 revision) |
mNo edit summary |
||
Line 2: | Line 2: | ||
<span class="pageSubtitle"><section begin="desc" />Compare two $lists and produce $list describing differences<section end="desc" /></span> | <span class="pageSubtitle"><section begin="desc" />Compare two $lists and produce $list describing differences<section end="desc" /></span> | ||
<p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListCmp function is [[ | <p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListCmp function is the [[Compare (Stringlist function)]].</p> | ||
This function compares two $lists and produces a $list describing the differences between the $lists. | 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 $ListCmp function 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 containing data with 8 byte sequence numbers. This is a required argument. | The first argument is the identifier of a $list containing data with 8 byte sequence numbers. This is a required argument. | ||
Line 17: | Line 17: | ||
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. | 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== | ==Syntax== | ||
<p class="syntax"><section begin="syntax" /> [%RESULT =] $ListCmp(list_id1, list_id2, list_id3, - | <p class="syntax"><section begin="syntax" /> [%RESULT =] $ListCmp(list_id1, list_id2, list_id3, - | ||
Line 25: | Line 26: | ||
<p class="caption">%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 class="caption">%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> | ||
The output $list produced by $ListCmp is in a format that is suitable as input to $ListUpd. For example, if input $list 1 contains | |||
<p class="code"> 00010000B | <p class="code"> 00010000B | ||
00020000 | 00020000 | ||
Line 33: | Line 34: | ||
00050000END | 00050000END | ||
</p> | </p> | ||
and input $list 2 contains | and input $list 2 contains | ||
<p class="code"> B | <p class="code"> B | ||
Line 41: | Line 44: | ||
END | END | ||
</p> | </p> | ||
the statement | the statement | ||
<p class="code"> %RESULT = $ListCmp(%INLIST1, %INLIST2, %OUTLIST) | <p class="code"> %RESULT = $ListCmp(%INLIST1, %INLIST2, %OUTLIST) | ||
</p> | </p> | ||
would result in the $list identified by %OUTLIST containing | would result in the $list identified by %OUTLIST containing | ||
<p class="code"> .li;./ I 00030000 $ 00030001 00010000 | <p class="code"> .li;./ I 00030000 $ 00030001 00010000 | ||
PRINT 'HARVARD DIVING TEAM, 1908' | PRINT 'HARVARD DIVING TEAM, 1908' | ||
</p> | </p> | ||
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. | |||
<p class="code"> | |||
-3 - No room to create $list items | -3 - No room to create $list items | ||
(if LISTFC $SirParm parameter not set) | |||
-5 - Required argument not specified | -5 - Required argument not specified | ||
-6 - $List identifier invalid | -6 - $List identifier invalid | ||
Line 60: | Line 68: | ||
<p class="caption">$ListCmp Error Codes | <p class="caption">$ListCmp Error Codes | ||
</p> | </p> | ||
<p class="code"> | <p class="code"> | ||
<ul> | <ul> | ||
<li>[[SirLib]]</li> | |||
</ul> | </ul> | ||
</p> | |||
</p> | |||
<p class="caption">Products authorizing $ListCmp | <p class="caption">Products authorizing $ListCmp | ||
</p> | </p> | ||
[[Category:$Functions|$ListCmp]] | [[Category:$Functions|$ListCmp]] |
Revision as of 13:43, 9 February 2011
<section begin="desc" />Compare two $lists and produce $list describing differences<section end="desc" />
Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListCmp function is the Compare (Stringlist 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 (see Calling Sirius Mods $functions).
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
<section begin="syntax" /> [%RESULT =] $ListCmp(list_id1, list_id2, list_id3, - sync_count, pad) <section end="syntax" />
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
the statement
%RESULT = $ListCmp(%INLIST1, %INLIST2, %OUTLIST)
would result in the $list identified by %OUTLIST containing
.li;./ 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.
-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