|
Another possibility I reminded later, is to use the QCLSCAN API, when the
string is shorter than 1000 characters: search for 3 to 5 consecutive spaces
and use the found parameter. Trimming should be off.
Regards,
Carel Teijgeler
*********** REPLY SEPARATOR ***********
On 10-3-03 at 8:22 Reggie Acosta wrote:
>Here is Carel's reply coded.
>
>The command source:
> RTVSTRLEN: CMD PROMPT('Retrieve String Length')
> PARM KWD(STRING) TYPE(*CHAR) LEN(5000) VARY(*YES +
> *INT2) PROMPT('Character string +
> (5000)')
> PARM KWD(STRLEN) TYPE(*DEC) LEN(4 0) RTNVAL(*YES) +
> PROMPT('CL var for return value (4,0)')
>
>The CPP source:
> RTVSTRLEN: PGM PARM(&STRING &STRLEN)
> DCL VAR(&STRING) TYPE(*CHAR) LEN(5002)
> DCL VAR(&STRLENA) TYPE(*CHAR) LEN(2)
> DCL VAR(&STRLEN) TYPE(*DEC) LEN(4 0)
>
> CHGVAR VAR(&STRLENA) VALUE(%SST(&STRING 1 2))
> CHGVAR VAR(&STRLEN) VALUE(%BIN(&STRLENA))
>
> ENDPGM
>
>Thanks again...
>Reggie
>
>>
>> message: 1
>> date: Sat, 08 Mar 2003 19:49:09 +0100
>> from: "Carel Teijgeler" <coteijgeler@xxxxxxxxx>
>> subject: Re: How to do %LEN(%TRIM(&myStringVariable)) in CL program?
>>
>> Reggie,
>>
>> If you want to know the length of the string, create a
>> command with two PARMs
>>
>> PARM 1 is the string length 5000 define as VARY(*YES)
>> PARM 2 is a return value *DEC 4 0
>>
>> IN the CPP receive PARM 1 in avariable with length 5002, use
>> the BIF %bin to pull out the first two bytes, return that value.
>>
>> It is in fact 5 lines of code.
>>
>> Regards,
>> Carel Teijgeler.
>>
>
>_______________________________________________
>This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
>To post a message email: MIDRANGE-L@xxxxxxxxxxxx
>To subscribe, unsubscribe, or change list options,
>visit: http://lists.midrange.com/mailman/listinfo/midrange-l
>or email: MIDRANGE-L-request@xxxxxxxxxxxx
>Before posting, please take a moment to review the archives
>at http://archive.midrange.com/midrange-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.