Compare (Stringlist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
 
mNo edit summary
Line 1: Line 1:
<span style="font-size:120%"><b>Compare two Stringlists and produce Stringlist describing differences</b></span>
{{Template:Stringlist:Compare subtitle}}


This method compares two Stringlists and produces a Stringlist describing the differences between the two.  
This method compares two Stringlists and produces a Stringlist describing the differences between the two.  
Line 7: Line 7:
Compare is a member of the [[Stringlist class]].
Compare is a member of the [[Stringlist class]].


==Compare Syntax==
==Syntax==
<pre>
{{Template:Stringlist:Compare syntax}}
%outlist = %sl:Compare(inlist, [synccount], [pad])
===Syntax terms===
</pre>
 
===Syntax Terms===
<dl>
<dl>
<dt>%outlist<dd>A Stringlist to contain the result of the comparison of the method and input Stringlists.<dt>%sl<dd>A Stringlist object.<dt>inlist<dd>The input Stringlist, which contains data that does not include 8-byte sequence numbers. This is a required argument.<dt>synccount<dd>A number indicating a synchronization count. When '''%sl''', the method Stringlist, and the '''inlist''' Stringlist are being compared and a difference is found, '''synccount''' indicates the number of lines that must match before they are treated as a true match. This is an optional argument, and it defaults to 1.<dt>pad<dd>The pad character to be used to pad any input line that is too short. This is an optional argument, and it defaults to blank. </dl>
<dt>%outlist<dd>A Stringlist to contain the result of the comparison of the method and input Stringlists.<dt>%sl<dd>A Stringlist object.<dt>inlist<dd>The input Stringlist, which contains data that does not include 8-byte sequence numbers. This is a required argument.<dt>synccount<dd>A number indicating a synchronization count. When '''%sl''', the method Stringlist, and the '''inlist''' Stringlist are being compared and a difference is found, '''synccount''' indicates the number of lines that must match before they are treated as a true match. This is an optional argument, and it defaults to 1.<dt>pad<dd>The pad character to be used to pad any input line that is too short. This is an optional argument, and it defaults to blank. </dl>


==Usage Notes==
==Usage notes==
<ul><li>All errors in Compare result in request cancellation.</ul>
<ul><li>All errors in Compare result in request cancellation.</ul>



Revision as of 17:39, 31 December 2010

Compare two Stringlists and produce Stringlist describing differences (Stringlist class)


This method compares two Stringlists and produces a Stringlist describing the differences between the two.

The Compare method object, that is, the Stringlist against which Compare is being run, must have 8-byte long sequence numbers at the start of each item. As the term "sequence numbers" suggests, these numbers must consist exclusively of numeric characters with no leading blanks, and the numbers must be in sequential order. That is, the sequence number in each Stringlist item must be greater than the sequence number in the preceding item.

Compare is a member of the Stringlist class.

Syntax

[%outList =] sl:Compare( inList, [syncCount], [pad])

Syntax terms

%outlist
A Stringlist to contain the result of the comparison of the method and input Stringlists.
%sl
A Stringlist object.
inlist
The input Stringlist, which contains data that does not include 8-byte sequence numbers. This is a required argument.
synccount
A number indicating a synchronization count. When %sl, the method Stringlist, and the inlist Stringlist are being compared and a difference is found, synccount indicates the number of lines that must match before they are treated as a true match. This is an optional argument, and it defaults to 1.
pad
The pad character to be used to pad any input line that is too short. This is an optional argument, and it defaults to blank.

Usage notes

  • All errors in Compare result in request cancellation.

Examples

The output Stringlist produced by Compare is in a format that is suitable as input to the Update (Stringlist function). For example, the method Stringlist contains these items:

00010000b
00020000
00030000print 'Quentin Compson'
00040000
00050000end

And the input argument Stringlist contains these items:

b

print 'Quentin Compson'
print 'Harvard Diving Team, 1908'

end

This statement compares the Stringlists:

%outList = %objList:compare(%argList)

The result is the Stringlist identified by %outList, which contains:

.li;./ I 00030000 $ 00030001 00010000
print 'Harvard Diving Team, 1908'

The method Stringlist for Compare (.%objlist, above) can be most easily created with the AppendOpenProcedure (Stringlist function)), using the third parameter to indicate a sequence number.