|
In the following code, the results without and with the third parameter are:
....5...10...15...20...25...30...35...40...45...50...55...60
1 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxHello '
61 ' '
and
....5...10...15...20...25...30...35...40...45...50...55...60
1 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxHelloxxxxxxxxxxxxxxxxxxx'
61 'xxxxxxxxxxxxxxxxxxxx'
Here is the code:
D Title s 80 inz(*all'x')
D cTitle c 'Hello'
/free
%subst(title:%int((%size(title) - %size(ctitle)) / 2)) = cTitle;
reset title;
%subst(title:%int((%size(title) - %size(ctitle)) / 2):
%size(cTitle)) = cTitle;
*inlr = *on;
/end-free
Mel Rothman
Mel Rothman wrote:
Rick Baird hit the nail on the head.The second parameter of %subst must be an integer value. If the length of cTitle is odd, dividing it by 2 gives a non-integer result. Adding %int, as shown below, compiles and runs correctly./freetitle = %subst(title:%int((%size(title) - %size(cTitle) / 2))); /end-free Booth Martin wrote:%subst as a result. I can't figure out two problems I believe are simply solved by others. I wish to populate a field with a constant, and center the text. Lets say we have a field called Title that is 40/alpha. Lets say we have a constant field of cTitle, with a value of 'Screen Title" I know how to do this with several lines of code, but I'd like to use %subst I believe this should work, but it doesn't compile: C eval %subst(Title: C ((%size(Title) - %size(cTitle) / 2) C = cTitle This does not compile and I can't see why not.If it did compile I would then ask my other question. How does one also clear the target field? Must that be done first?
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.