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



Pointer arithmetic in RPG isn't as pretty as it is in languages with typed
pointers.  <g>  

> -----Original Message-----
> From: Jim Langston [mailto:jimlangston@conexfreight.com]
> Sent: Tuesday, June 05, 2001 10:26 AM
> To: RPG400-L@midrange.com
> Subject: Re: MOVEA -> EVAL
> 
> 
> Ummm... I'm fairly fluent in pointers and pointer use, but if 
> I saw that
> code in a program I would wonder what the programmer was 
> smoking that day.
> 
> It would also take me 15 minutes or so to figure out just 
> what the program
> was doing.  Is there an easier format to code this in that is 
> more intuitive?
> 
> Regards,
> 
> Jim Langston
> 
> Me transmitte sursum, Caledoni!
> 
> bmorris@ca.ibm.com wrote:
> > 
> <SNIP> 
> > 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
> > 
+---
| 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 ...


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.