> Interesting. Seymours example came back with a blank.

Blank what?

trace i;trace i;parse var myVar v1 v2 v3 myVal '.' rest
    95 *-*           trace i;
    95 *-*           parse var myVar v1 v2 v3 myVal '.' rest
       >V>             "word1 word2 9.12 word3.ext"
       >L>             "."
       >>>             "."
       >>>             "word1"
       >>>             "word2"
       >>>             "9"
       >>>             ""
       >>>             "12 word3.ext"
    96 *-*           trace 'Off'                    /* Don't trace rexxtry.
 */
  ................................................ REXXTRY.CMD on OS/2
say v1 v2 v3 '/'myVal'/' v1 v2 v3 myVal '.' rest
word1 word2 9 // word1 word2 9  . 12 word3.ext

You get a null myVal because v3 has already swallows everything before the 
first period.

> I used PARSE VALUE MYVAR WITH . . . '.' . WORD3 '.' EXT .

Well, I wouldn't have used the same variable name as the test data, and it's 
not clear whether the period in 9.12 is fortuitous. Your parse won't work 
against, e.g., myVar = 'word1 word2 666 word3.ext'

 */
  ................................................ REXXTRY.CMD on OS/2
say v1 v2 v3
word1 word2 9



--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [[email protected]] on behalf of 
Wayne Bickerdike [[email protected]]
Sent: Monday, February 24, 2020 11:03 PM
To: [email protected]
Subject: Re: Rexx parse using period as placeholder

Interesting. Seymours example came back with a blank.

I used PARSE VALUE MYVAR WITH . . . '.' . WORD3 '.' EXT .



On Tue, Feb 25, 2020 at 10:46 AM Paul Gilmartin <
[email protected]> wrote:

> On Mon, 24 Feb 2020 18:08:48 -0500, Tony Thigpen wrote:
>
> >You have "passed" your first period before your "'.'" in the parse
> >statement is actually interpreted.
> >
> >For your data example:
> >myVar = 'word1 word2 9.12 word3.ext'
> >The correct parse is:
> >Parse Value myVar with . . myVal2 '.' .
> >
> >Each period, or var name, in the parse "eats" one blank delimited word.
> >For example:
> >myvar = 'a b c d e f g'
> >parse var myvar . . 'e' next .
> >will yield next = 'f', but
> >
> >parse var myvar . . . . . 'e' next .
> >will yield next = ''
> >
> Ummm.  No.  I believe next = 'f':
> parse value 'a b c d e f g' with . . . . . 'e' next .; say next"
>        >.>   "a"
>        >.>   "b"
>        >.>   "c"
>        >.>   "d"
>        >.>   ""
>        >>>   "f"
>        >.>   "g"
>        >V>   "f"
> f
>
> -- gil
>
>
>
>
> >For your data, I would first parse the words, then parse each var for '.'.
> >
> >Now, if there is really a special character (or string) that you need to
> >identify, it is best to parse the before and after data, then parse each
> >section. This is how you should handle finding options in a parm string
> >passed to a REXX script:
> >
> >parse value arg with parms '(' options ')' localopts
> >parse var parms parm1 parm2 parm3 parm4 parm5 .
> >parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
> >parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
> >
> >For the above to work, the use of ')' *requires* a previous '('.
> >
> >example: arg = aaa bbb ccc ')' ddd eee
> >      parse value arg with parms '(' options ')' localopts
> >
> >will yield:
> >parms = "aaa bbb ccc ) ddd eee"
> >options = ''
> >localopts = ''
> >
> >If this might happen, you would need:
> >parse value arg with part1 ')' localopts
> >parse var part1  parms ')' options
> >parse var parms parm1 parm2 parm3 parm4 parm5 .
> >parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
> >parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
> >
> >
> >
> >Tony Thigpen
> >
> >Seymour J Metz wrote on 2/24/20 5:50 PM:
> >> Isn't that the same, except for the choice of variable names?
> >>
> >> For the type of source string that you're parsing, I'd probably break
> it into words with a simple parse and then use a parse var foo bar '.' baz
> >>
> >>
> >> --
> >> Shmuel (Seymour J.) Metz
> >> http://mason.gmu.edu/~smetz3
> >>
> >> ________________________________________
> >> From: IBM Mainframe Discussion List [[email protected]] on
> behalf of Ambros, Thomas [[email protected]]
> >> Sent: Monday, February 24, 2020 4:26 PM
> >> To: [email protected]
> >> Subject: Re: Rexx parse using period as placeholder
> >>
> >> You mean like this?
> >>
> >> *-* Parse Value myVar with . . . myVal2 '.' .
> >>>>>    "word1 word2 9.12 word3.ext"
> >>> .>   "word1"
> >>> .>   "word2"
> >>> .>   "9"
> >>>>>    ""
> >>> .>   "12 word3.ext"
> >>
> >> But you're correct, variables result in the same behavior:
> >>
> >> *-* Parse Value myVar with t1 t2 t3 myVal2 '.' .
> >>>>>    "word1 word2 9.12 word3.ext"
> >>>>>    "word1"
> >>>>>    "word2"
> >>>>>    "9"
> >>>>>    ""
> >>> .>   "12 word3.ext"
> >>
> >> So it is the definition of a blank delimited word that escaped me.
> I'll look for a precise definition of one of those in the context of Rexx.
> >>
> >> Thomas Ambros
> >> zEnterprise Operating Systems
> >> zEnterprise Systems Management
> >> 518-436-6433
> >>
> >> -----Original Message-----
> >> From: IBM Mainframe Discussion List <[email protected]> On
> Behalf Of Seymour J Metz
> >> Sent: Monday, February 24, 2020 16:17
> >> To: [email protected]
> >> Subject: Re: Rexx parse using period as placeholder
> >>
> >>
> >>
> >> *** Warning: External message - exercise caution. Think before you
> click. ***
> >>
> >>
> >> Why did it surprise you, and what does it have to do with the
> placeholders? You'd get the same thing if you used three variable names
> instead of three periods. The parse with works because it's using a
> different template on a different value: try
> >>
> >>      parse Value myVar with . . . myVal '.' .
> >>
> >>
> >> --
> >> Shmuel (Seymour J.) Metz
> >>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=
> >>
> >> ________________________________________
> >> From: IBM Mainframe Discussion List [[email protected]] on
> behalf of Ambros, Thomas [[email protected]]
> >> Sent: Monday, February 24, 2020 3:43 PM
> >> To: [email protected]
> >> Subject: Rexx parse using period as placeholder
> >>
> >> A trivial item, but this surprised me.
> >>
> >> I wanted to parse out the string 'word3' using the period as a place
> holder.  The input could have a blank delimited string containing an
> embedded period before the one I wanted to parse out.  The Parse Var as
> coded didn't work.  Using the Parse Value as coded there does work.  I
> didn't know it would behave like that.  I can't seem to find this
> documented but I might have overlooked something.
> >>
> >> myVar = 'word1 word2 9.12 word3.ext'
> >> Parse Var myVar . . . myVal '.' .
> >> Parse Value Subword(myVar,4) with myVal2 '.' .
> >> Say 'myVal=' myVal
> >> Say 'myVal2=' myVal2
> >> Exit
> >>
> >> Trace R of that code:
> >>
> >>       3 *-* myVar = 'word1 word2 9.12 word3.ext'
> >>         >>>   "word1 word2 9.12 word3.ext"
> >>       4 *-* Parse Var myVar . . . myVal '.' .
> >>         >.>   "word1"              -
> >>         >.>   "word2"
> >>         >.>   "9"
> >>         >>>   ""
> >>         >.>   "12 word3.ext"
> >>       5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
> >>         >>>   "word3.ext"
> >>         >>>   "word3"
> >>         >.>   "ext"
> >>       6 *-* Say 'myVal=' myVal
> >>         >>>   "myVal= "
> >> myVal=
> >>       7 *-* Say 'myVal2=' myVal2
> >>         >>>   "myVal2= word3"
> >> myVal2= word3
> >>       8 *-* Exit
> >>
> >> Thomas Ambros
> >> zEnterprise Operating Systems
> >> zEnterprise Systems Management
> >> 518-436-6433
> >>
> >>
> >> This communication may contain privileged and/or confidential
> information. It is intended solely for the use of the addressee. If you are
> not the intended recipient, you are strictly prohibited from disclosing,
> copying, distributing or using any of this information. If you received
> this communication in error, please contact the sender immediately and
> destroy the material in its entirety, whether electronic or hard copy. This
> communication may contain nonpublic personal information about consumers
> subject to the restrictions of the Gramm-Leach-Bliley Act. You may not
> directly or indirectly reuse or redisclose such information for any purpose
> other than to provide the services for which you are receiving the
> information.
> >>
> >> 127 Public Square, Cleveland, OH 44114
> >>
> >> If you prefer not to receive future e-mail offers for products or
> services from Key, send an email to mailto:[email protected] with 'No
> Promotional E-mails' in the SUBJECT line.
> >>
> >> ----------------------------------------------------------------------
> >> For IBM-MAIN subscribe / signoff / archive access instructions, send
> email to [email protected] with the message: INFO IBM-MAIN
> >>
> >> ----------------------------------------------------------------------
> >> For IBM-MAIN subscribe / signoff / archive access instructions, send
> email to [email protected] with the message: INFO IBM-MAIN
> >>
> >> ----------------------------------------------------------------------
> >> For IBM-MAIN subscribe / signoff / archive access instructions,
> >> send email to [email protected] with the message: INFO IBM-MAIN
> >>
> >> ----------------------------------------------------------------------
> >> For IBM-MAIN subscribe / signoff / archive access instructions,
> >> send email to [email protected] with the message: INFO IBM-MAIN
> >>
> >>
> >
> >----------------------------------------------------------------------
> >For IBM-MAIN subscribe / signoff / archive access instructions,
> >send email to [email protected] with the message: INFO IBM-MAIN
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>


--
Wayne V. Bickerdike

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to