|
The best way to trim leading spaces in CL is a semi-recursive loop.
PGM
DCL VAR(&STRING) TYPE(*CHAR) LEN(50)
CHGVAR VAR(&STRING) VALUE(' TEST STRING ')
TRIM: IF COND(&STRING *NE ' ') THEN(DO)
IF COND(%SST(&STRING 1 1) *EQ ' ') THEN(DO)
CHGVAR VAR(&STRING) VALUE(%SST(&STRING 2 49))
GOTO CMDLBL(TRIM)
ENDDO
ENDDO
SNDPGMMSG MSG('OUTPUT: "' *CAT &STRING *TCAT '".')
ENDPGM
--Jason
Tommy.Holden@xxxxxxxxxxxxxxxxxxxxx wrote:
> you could use varchar in the module then load the resulting string into a
> fixed length char variable or if you wanted you could have 2 routines one
> for return fixed length and one for returning a varchar. but personally i
> would only write one that returns a fixed length. it's not going to the
> that labor-intensive on the system regardless...
>
> Thanks,
> Tommy Holden
>
>
>
> From:
> rob@xxxxxxxxx
> To:
> Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
> Date:
> 01/14/2009 08:32 AM
> Subject:
> Re: Triming CL stings?
> Sent by:
> midrange-l-bounces@xxxxxxxxxxxx
>
>
>
> Adam,
>
> Hey the RPG subprocedure sounds nice but has some implementation issues.
> For example if I do
> CALLPRC PRC(Trimmer) PARM((&FROMSTRING)) RTNVAL(&TRIMMED)
> and Trimmer is a subprocedure in a RPGLE module or service program then it
>
> still isn't right because CL doesn't support varying length fields. At
> best it would just trim off the leading blanks. You would have to add
> further logic after the CALLPRC.
>
> Rob Berendt
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.