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



Someone else perhaps can give you a technical reason, but yes, you are
sorting the entire set of data, so the elements with the same value may or
may not be reordered. Odds are they will always be reordered.

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Dane Cox
Sent: Thursday, July 08, 2004 8:03 AM
To: RPG programming on the AS400 / iSeries
Subject: Sorting a data structure array...

I have a data structure array that I am sorting using qsort and I'm
observing some 'unintended' sorting going on and thought I'd see if
someone else has seen this.
 
My data structure array contains 9 fields, one of which is a status
field (1.0) which is what I am using to sort by...I want to see the
higher status' last.  When I load up the ds array only two rows contain
a status other than 0.  When qsort is called, the ds array comes back
with the higher status' last, however, those that have a status of zero
are also re-ordered amongst themselves.  Does any body know why that is?
I would think that if there is no difference in the value of status,
then these would not be 'touched'.
 
The sorting code is pretty standard, but here's some of it...
 
The ds array...
 
Drsw              ds                  qualified dim(9999) based(w)
D acctn                         16  0                                  
D acctt                          1                                     
D prod                          20                                     
D tax                            9  0                                  
D accts                         20                                     
D curr                          11  2                                  
D rela                           1                                     
D relad                         10                                     
D status                         1  0                                  
 
 
The comparison code used by qsort...
 
C                   select                                        
C                   when      element1.status < element2.status 
C                   return    -1                                  
C                   when      element1.status > element2.status 
C                   return    1                                   
C                   other                                         
C                   return    0                                   
C                   endsl                                         
 
 
 
Thanks in advance,
Dane



NOTICE: This electronic mail message and any files transmitted with it are
intended exclusively for the individual or entity to which it is addressed.
The message, together with any attachment, may contain confidential and/or
privileged information. Any unauthorized review, use, printing, saving,
copying, disclosure or distribution is strictly prohibited. If you have
received this message in error, please immediately advise the sender by
reply email and delete all copies.



--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.