|
Thanks Hans, very good example! Just what I was looking for!!! On Thu, 25 Jul 2002 10:41:08 -0400 Hans Boldt <boldt@ca.ibm.com> wrote: >JJW wrote: >>Hi *ALL >> >>Does anyone have small working examples of BSEARCH and >>QSORT they can send me? > >Sure: >------------------------------------------------------------------------- > H dftactgrp(*no) bnddir('QC2LE') > > D qsort pr > extproc('qsort') > D base * value > D num 10i 0 value > D width 10i 0 value > D compare * procptr value > > D bsearch pr * > extproc('bsearch') > D key * value > D base * value > D num 10i 0 value > D size 10i 0 value > D compare * procptr value > > D compare5a pr 10i 0 > D element1 5a const > D element2 5a const > > D array s 5a dim(10) >ctdata perrcd(10) > D i s 10i 0 > D elem s like(array) >based(p) > D key s like(array) > > /free > // sort the array and show results > qsort (%addr(array): %elem(array): >%size(array): > %paddr(compare5a)); > for i = 1 to %elem(array); > dsply array(i); > endfor; > > // Search for something in the array > key = 'hhhhh'; > p = bsearch (%addr(key): %addr(array): >%elem(array): > %size(array): %paddr(compare5a)); > dsply elem; > > // Compute index of item in the array > i = %div(p - %addr(array):%size(array)) + 1; > dsply i; > > *inlr = *on; > > /end-free > > P compare5a b > D compare5a pi 10i 0 > D element1 5a const > D element2 5a const > /free > if element1 < element2; > return -1; > elseif element1 > element2; > return 1; > endif; > return 0; > /end-free > P compare5a e > >**CTDATA array >dddddhhhhhooooouuuuutttttmmmmmwwwwwlllllqqqqqppppp >------------------------------------------------------------------------- > >Oh yeah, be sure to check if bsearch() returns a NULL >value, which >means the item was not found. > >Cheers! Hans > > > >_______________________________________________ >This is the RPG programming on the AS400 / iSeries >(RPG400-L) mailing list >To post a message email: RPG400-L@midrange.com >To subscribe, unsubscribe, or change list options, >visit: >http://lists.midrange.com/cgi-bin/listinfo/rpg400-l >or email: RPG400-L-request@midrange.com >Before posting, please take a moment to review the >archives >at http://archive.midrange.com/rpg400-l. > <TEXTAREA NAME="Signature" ROWS="4" COLS="60"><TEXTAREA NAME="Signature" ROWS="4" COLS="60">
As an Amazon Associate we earn from qualifying purchases.
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.