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



Yes, but you could concatenate a string of special characters to the end of the 
string and scan for that.  By using the *TCAT concatenation operation, you 
remove trailing blanks first.

The following example CL demonstrates this.  I have used two tilde characters 
as the scan string, but it could be anything:

             PGM        PARM(&STRING)                                  
                                                                       
             DCL        VAR(&STRING) TYPE(*CHAR) LEN(80)               
             DCL        VAR(&TEST)   TYPE(*CHAR) LEN(81)               
             DCL        VAR(&POS)    TYPE(*DEC)  LEN(3 0)              
             DCL        VAR(&MSG)    TYPE(*CHAR) LEN(3)                
                                                                       
             CHGVAR     VAR(&TEST) VALUE(&STRING *TCAT '~~')           
                                                                       
             CALL       PGM(QCLSCAN) PARM(&TEST X'081F' X'001F' '~~' + 
                          X'002F' '0' '0' ' ' &POS)                    
                                                                       
             CHGVAR     VAR(&POS) VALUE(&POS - 1)                      
             CHGVAR     VAR(&MSG) VALUE(&POS)                          
             SNDMSG     MSG(&MSG) TOUSR(*REQUESTER)                    
                                                                       
             ENDPGM                                                    

Note, that in the example you will have to call the program via a command or 
pad out the string parameter otherwise the issue with CL parameters greater 
than 32 characters arises:

             CMD        PROMPT('Test CL Scan')          
             PARM       KWD(STRING) TYPE(*CHAR) LEN(80) 

All the best

Jonathan
www.astradyne-uk.com

-----Original message-----
From: "Gregory A. Garner" ggarner_gds@xxxxxxxxxxxxxx
Date: Sun,  6 Mar 2005 15:06:11 +0000
To: "Midrange Systems Technical Discussion" midrange-l@xxxxxxxxxxxx
Subject: RE: Any way in the CL program to find the length of the character
        datastored in a variable?

> Isn't the problem with QCLSCAN that you cannot test for a multiple word
> variable?  When you see the first blank the scan stops and the result is
> invalid.
> 
> -----Original Message-----
> From: midrange-l-bounces@xxxxxxxxxxxx
> [mailto:midrange-l-bounces@xxxxxxxxxxxx]On Behalf Of Vernon Hamberg
> Sent: Sunday, March 06, 2005 1:19 AM
> To: Midrange Systems Technical Discussion
> Subject: Re: Any way in the CL program to find the length of the
> character datastored in a variable?
> 
> 
> This is interesting - which really is the bigger hit on performance. I
> think it depends. Using %SST in a loop  could very likely take more time
> than a single call to a program that uses a more efficient loop - probably
> in some way that uses pointers and doesn't need to resolve the %SST for
> each test character. I can see that a 256-character variable that has only
> the 1st 3 characters filled would take longer with %SST than with a call to
> QCLSCAN. But it probably does not matter too much, unless this is repeated
> over several hundreds of thousands of records or values, say.
> 
> Still, it would be an interesting test. Maybe I'll try it when I have some
> time.
> 
> Vern
> 
> At 10:43 AM 3/5/2005, you wrote:
> >Here's the V5R2 link:
> >
> >http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/apis/qclsc
> a
> >n.htm
> >
> >But I would use a substring method myself - no reason to call another
> >program and take the performance hit when you can do it in a loop with
> %SST.
> >
> >
> > >            Siva
> > >            <matchrefree@yaho
> > >            o.com>                                                     To
> > >            Sent by:                  Midrange Systems Technical
> > >            midrange-l-bounce         Discussion
> > >            s@xxxxxxxxxxxx            <midrange-l@xxxxxxxxxxxx>
> > >                                                                       cc
> > >
> > >            03/04/2005 11:26                                      Subject
> > >            PM                        RE: Any way in the CL program to
> > >                                      find the length of the character
> > >                                      datastored in a variable?
> > >            Please respond to
> > >            Midrange Systems
> > >                Technical
> > >               Discussion
> > >            <midrange-l@midra
> > >                nge.com>
> > >
> > >
> > >
> > >
> > >
> > >
> > > Thanks Doug....
> > > Is it an API?... Wats the Parm list for this...  Coudnt get any in my
> > > manuals...
> > >
> > > Thanks
> > > Siva.
> > >
> > >
> > > Doug Hart <DougHart@xxxxxxxxxxxx> wrote:
> > >
> > > QCLSCAN
> > >
> > >
> > > ---
> > > Doug Hart
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: midrange-l-bounces@xxxxxxxxxxxx
> > > [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Siva
> > > Sent: Friday, March 04, 2005 11:02 PM
> > > To: MIDRANGE-L@xxxxxxxxxxxx
> > > Subject: Any way in the CL program to find the length of the character
> > > datastored in a variable?
> > >
> > >
> > > Is there any way in the CL program to find the length of the character
> data
> > > stored in a variable?
> > >
> > > I find there is no direct CL command to acheive this... may be some
> > > roundabout way there to do this... but nothing striking at this
> moment....
> > >
> > > i think of some prgm calls with the required variable as the parm and
> the
> > > receiviong prgm process the variable etc... but couldnt get any logic
> here
> > > :-)......
> > >
> > >
> > > Thanks
> > > Siva.
> >
> >--
> >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.
> 
> --
> 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.
> 
> -- 
> 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.
> 


Jonathan Mason
www.astradyne-uk.com


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.