On 05.07.2017 20:30, jacobus erps wrote:
Now I understand what you mean by cursors, setll, and setgt.
I posted a code example earlier, but i suppose it was rather cryptic.

cursor = rm_sll(rm_cur(map));
dow rm_rdn(cursor);
sum += rm_p_(rm_itm(cursor));
enddo;
rm_dis(cursor);

Explanation:
To iterate through all key/item pairs, procedure "rm_cur" creates a cursor,
"rm_sll" does a setll (set lower limit, without key so the cursor is set at
the beginning), "rm_rdn" (reads the next key/item pair) and "rm_itm"
returns the current item. "rm_sll" returns it's first argument which is the
cursor, to enable "chaining" of procedure calls. Procedure "rm_p_" is the
opposite of "rm_p" and converts a packed decimal value stored in the map to
a "normal" RPG packed decimal. "rm_dis" disposes the cursor.
Please at least give the procedures sane names. This naming is one of the things that alienates us from the rest of the programming world and btw names can have more that 6 characters. We are no longer in the 80s. Use a decent editor. Use content assist if you don't like to type long names.

With duplicate keys you are not trying to implement something like a "normal" map (I don't know if it was this thread but I think someone mentioned the Java TreeMap). In a "normal" map keys are unique. What you try to implement is rather something like a MultiMap or MultiValueMap where you STILL can have a single key but the value is probably a list which can hold multiple values. This is rather easy to implement when you already have a normal map. No need to do something like duplicate keys.

My 2 cents

Mihael


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