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