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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >> Ambros, Thomas [0000010f77c934b1-dmarc-requ...@listserv.ua.edu] >> Sent: Monday, February 24, 2020 4:26 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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 <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of >> Seymour J Metz >> Sent: Monday, February 24, 2020 16:17 >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >> Ambros, Thomas [0000010f77c934b1-dmarc-requ...@listserv.ua.edu] >> Sent: Monday, February 24, 2020 3:43 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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:dnereque...@key.com with 'No Promotional >> E-mails' in the SUBJECT line. >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, send email >> to lists...@listserv.ua.edu with the message: INFO IBM-MAIN >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, send email >> to lists...@listserv.ua.edu with the message: INFO IBM-MAIN >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN >> >> > >---------------------------------------------------------------------- >For IBM-MAIN subscribe / signoff / archive access instructions, >send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN