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



Jason,

There is no reason to keep testing the string for all blanks. For performance reasons, the code should be modified to look like this:

PGM
DCL VAR(&STRING) TYPE(*CHAR) LEN(50)
CHGVAR VAR(&STRING) VALUE(' TEST STRING ')

IF COND(&STRING *NE ' ') THEN(DO)
TRIM: 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


At 1/14/09 10:25 AM, you wrote:
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 thread ...

Replies:

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.