$ListCmp

From m204wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Compare two $lists and produce $list describing differences

Note: Many $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.

Products authorizing $ListCmp