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


  • Subject: Re: MOVEA -> EVAL
  • From: "M. Lazarus" <mlazarus@xxxxxxxx>
  • Date: Tue, 05 Jun 2001 13:50:32 -0400

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