Hi Art,

maybe the best solution would be a simple procedure:

dcl-proc right;
dcl-pi *n varchar(65000);
string varchar(65000) const options(*trim:*convert);
length int(10) const;
end-pi;

dcl-s padding varchar(65000) inz;

if %len(string) < length;
%len(padding) = length - %len(string);
return padding + string;
else;
return %right(string:length);
endif;
end-proc;

This procedure needs some errr checking - but the basic functionality is there.

Then call it like that:

mystring = right('ABC1234':50);

Of course you can also use eval-r - but this only works with fixed length char fields as a receiver - and it also doesn't "auto-convert" different data types to char, like this procedure.

HTH
Daniel


Am 03.07.2024 um 20:59 schrieb Art Tostaine, Jr. <atostaine@xxxxxxxxx>:

I want to do something like this:

dcl-s mystring char(50);
mystring = right('ABC1234');

and "right" returns a string that is 50 characters long with ABC1234 right
justified. I Can code the procedure, but how do I define my dcl-proc and
dcl-pi so I can send in a constant and return my value to mystring?

I've been googling and saw *CONVERT and some other things but I can't get
it right.

Thanks for any help.

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.