|
Chris Pando wrote:
Which would get deeply nested for a bunch of keys. I have a generic
file comparison report, which needs to be able to compare 1 to n key
fields; I do it like:
...
DoU ($I = keyCnt Or memcmpstr <> 0);
$I = $I + 1;
memcmpstr = memcmp( @bfr1@($I)
: @bfr2@($I)
: @fldLnB($I)
);
...
The deep nesting can be easily avoided (see below). The problem with
comparing by memcmp is that it doesn't compare correctly for many data
types. For example,
packed data: -99999 < 12345, but x'99999d' > x'12345f'
varying length: 'abc' < 'd', but x'0003818283??????' >
x'000184????????????'
etc.
Here's Jon's code reduced to a single select, with no extra nesting.
The nested select is a bit nicer, but I think this is ok too.
select;
// compare the year first
when E1.Year < E2.Year;
return -1;
when E1.Year > E2.Year;
return 1;
// year is equal; compare the month next
when E1.Month < E2.Month;
return -1;
when E1.Month > E2.Month;
return 1;
// everything is equal
return 0;
endsl;
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.