|
I use this procedure. You pass a string + the length of the result field
and it returns the string centered. It is limited to 256 characters.
? * Procedure Interface
PCenter B EXPORT
DCenter PI 256
D instring 256 CONST
D strlen 3p 0 CONST
? * work fields
D outstring S 256
Dwork_arr S 1 dim(256)
Dx S 3 0
Dstrt S 3 0
? * PROCEDURE CALCS
? C IF instring = *blanks
C RETURN *blanks
? C ENDIF
? * load the array
C MOVEA instring work_arr
? * Read thru finding the first non-blank character
? C 256 DO 256 x
? C IF work_arr(x) <> ' '
C LEAVE
? C ENDIF
? C ENDDO -1
? * if the last non-blank character is the length of the output or the
length
? * of the output - 1, move the input to the output and return
? C IF x = strlen or
? C x = (strlen - 1)
C MOVEL instring outstring
C RETURN outstring
? C ENDIF
? * assure that the length is less than the maximum number (255)
? * and calculate the center position of the output
? C IF x < 255
C EVAL strt = ((strlen - x) / 2) + 2
? C ELSE
C EVAL strt = 1
? C ENDIF
? * move the output
? C
C EVAL %subst(outstring:strt:x) =
C %subst(instring:1:x)
? *
C RETURN outstring
P E
Thanks,
Mark
Mark D. Walter
Senior Programmer/Analyst
CCX, Inc.
mwalter@xxxxxxxxxx
http://www.ccxinc.com
"Booth Martin"
<Booth@xxxxxxxxxxxx To: <rpg400-l@xxxxxxxxxxxx>
> cc:
Sent by: Subject: centering text on a
field
rpg400-l-bounces@xx
drange.com
08/14/2003 09:39 AM
Please respond to
RPG programming on
the AS400 / iSeries
What is the current best practice to center text of unknown length in a
field of unknown length?
It occurs to me I am making it much too difficult.
(free form is nice I suppose but an example in ordinary RPGIV would be
easier for me to understand)
---------------------------------------------------------
Booth Martin http://www.MartinVT.com
Booth@xxxxxxxxxxxx
---------------------------------------------------------
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.