|
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.