> From: Nicolay, Paul
>
> Has this always been like that ?
>
> DBuffer           S          32767    Varying
> DpFixed           S               *
> DFixed            S          32767    Based(pFixed)
>
>  /free
>   pFixed = %Addr(Buffer) + 2;
>   Fixed = 'Hello';
>   %Len(Buffer) = %Len(Buffer) + 5;
>   *INLR = *On;
>   Return;
>  /end-free
>
> Given this sample... I end up with Buffer containing 5 blanks...
> and not my
> 'Hello' ?

Paul, the statement "Fixed = 'Hello'" uses the current length of Buffer to
determine the number of bytes to move.  You have to set the length ahead of
time.  The following will work.  Instead of this:

>   Fixed = 'Hello';
>   %Len(Buffer) = %Len(Buffer) + 5;

Use this:

>   %Len(Buffer) = 5;
>   Fixed = 'Hello';

What I've done is initialize the length BEFORE performing the move.  This
tells the compiler to move five bytes.

Hope this helps.

Joe



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