On 29/06/2022 8:37 pm, Lionel B. Dyck wrote:
Some align the end with the do, others align the end with the code in the do 
structure.  The key is a consistent style for readability.

The REXXFORM results of my example are:

/* rexx */
  x = bpxwunix('find /u/user/work/',,out.,err.)
  do I = 1 to out.0
    say out.i
  end

Your example returns the file path and you still need to parse the results and call additional code to get directory entry information. It's much easier to just use C++ which is at the same level of abstraction and orders of magnitude more powerful.

    for (auto& dirEntry: std::filesystem::recursive_directory_iterator(path)) {
        if (!dirEntry.is_regular_file()) {
            std::cout << "Directory: " << dirEntry.path() << std::endl;
            continue;
        }
        std::filesystem::path file = dirEntry.path();
        std::cout << "Filename: " << file.filename() << " extension: " << file.extension() << std::endl;
    }



Lionel B. Dyck <><
Website: https://www.lbdsoftware.com
Github: https://github.com/lbdyck

“Worry more about your character than your reputation. Character is what you 
are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
David Crayford
Sent: Wednesday, June 29, 2022 07:32 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Some questions on SYSCALL

On 29/06/2022 8:27 pm, Lionel B. Dyck wrote:
The formatting was a quick and dirty - I typically use the REXXFORM edit macro 
to clean up alignments and keep things neat.
I'm not knocking your code Lionel. It's more the case that I don't like what has become 
common formatting of REXX code blocks where the end is indented at the end of the block. 
Is this REXX pretending to be Python by obscuring the "end"?

if/do/ ...
     ...
    end



You can find it at https://github.com/lbdyck/rexxform - I ported it from z/VM 
to work as an edit macro.

Yes - you could use SYSCALLS and get the same info but this was a
quick and easy answer

Enjoy

Lionel B. Dyck <><
Website: https://www.lbdsoftware.com
Github: https://github.com/lbdyck

“Worry more about your character than your reputation. Character is what you 
are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On
Behalf Of David Crayford
Sent: Wednesday, June 29, 2022 07:19 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Some questions on SYSCALL

Thanks Lionel. If I want to get the directory entry I suppose I have to also execute 
bpxwunix("ls <path>") or use SYSCALLS?

BTW, I really wish the "end" scope terminater would match the "do"
column alignment. It's just another reason for me to hate on REXX when it's 
become common practice to uses bizarre formatting rules.

On 29/06/2022 8:12 pm, Lionel B. Dyck wrote:
Perhaps something like this will give you what you want to recursively traverse 
a directory:

x = bpxwunix('find /u/user/work/',,out.,err.) do I = 1 to out.0
      say out.i
      end


Lionel B. Dyck <><
Website: https://www.lbdsoftware.com
Github: https://github.com/lbdyck

“Worry more about your character than your reputation. Character is what you 
are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On
Behalf Of David Crayford
Sent: Wednesday, June 29, 2022 07:07 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Some questions on SYSCALL

On 29/06/2022 6:37 pm, Seymour J Metz wrote:
Sme, but manageable. The article Safe REXX at 
<http://www.rexxla.org/Newsletter/9812safe.html> and 
<http://www.rexxla.org/Newsletter/9901safe.html";> has some tips on avoiding REXX 
pitfalls.
What's the point in managing something when you can just use a better language? 
It's a good time to be working on z/OS as we have an abundance of choice. 
That's not entirely obvious on this forum where every problem seems to be met 
with a ham-fisted REXX solution.

Yes, Crayford's bashing REXX again. I have some experience of using z/OS UNIX 
REXX services but I didn't find it productive. Maybe somebody with more 
knowledge than me could post a snippet that demonstrates how to recursively 
traverse a directory tree printing the entries.



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

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf of David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, June 28, 2022 11:31 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Some questions on SYSCALL

On 29/06/2022 5:42 am, Charles Mills wrote:
"write" fd "buf"

Which makes no sense to me at all. fd is passed by value but "buf" by name?
It's horribly inconsistent and unpleasant to use. The buffer HAS to
be a passed by reference (variable) as it could break REXX string
length limits or contain characters that REXX chokes on.
I can't help but think that you've made a rod for your back. REXX is
superficially simple but in my experience, which is 30 years of
using the language, it is anything but and has endless pitfalls.

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

Reply via email to