× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.