× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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


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.