|
Barbara, At 6/5/01 12:14 PM -0400, you wrote: >Formerly, MOVEA was the only way to do string processing in RPG, and now >I think it's often used out of habit where newer string builtin functions >can handle the same task without bothering with arrays at all. > >Anyway, to handle the function of MOVEA using EVAL: > >C MOVEA arr1(n) arr2(m) >C MOVEA(P) arr1(n) arr2(m) > >becomes > >D src s 65535a based(pSrc) >D tgt s 65535a based(pTgt) >D srcLen s 10i 0 >D tgtLen s 10i 0 > /free > pSrc = %addr(arr1) + %size(arr1) * (n - 1) > pTgt = %addr(arr2) + %size(arr2) * (m - 1) > srcLen = %size(arr1) * (%elem(arr1) - n + 1) > %subst(tgt : 1 : srcLen) = %subst(src : 1 : srcLen) // no padding > > tgtLen = %size(arr1) * (%elem(arr1) - n + 1) > %subst(tgt : 1 : tgtLen) = %subst(tgt : 1 : srcLen) // padding I think that you can admit that, despite the "coolness" of using pointers and the new freeform calcs, a one line MOVEA is a lot more elegant and easier to understand at a glance. Also note that MOVEA can move a variable to an array and vice versa. All this functionality in one easy to read opcode! How many will take the above code (or a variation) and make a subprocedure out of it, essentially duplicating what is already in the language?? I was under the impression that the table was supposed to be a one for one replacement and that I missed something. I would actually like to see this opcode "ported" to freeform. Thanks. -mark +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
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.