Hello. I have had 20 +years working with Rexx on a mainframe but I am new to working on a pc. I have oorexx installed on my pc running Windows Vista OS. I need a sample program to get me started.
Could someone provide a sample list of commands to open a file on my pc, read each line and write each line to an output file?
Also how do you debug a rexx.exe?, When I run on that is in error the MS window closes before I see what the error was. Thanks in advance.
On Fri, 18 Jul 2008 21:35:56 -0700 (PDT), globaloney wrote: >Hello. >I have had 20 +years working with Rexx on a mainframe but I am new to >working on a pc. >I have oorexx installed on my pc running Windows Vista OS. I need a >sample program to get me started.
>Could someone provide a sample list of commands to open a file on my >pc, read each line >and write each line to an output file?
>Also how do you debug a rexx.exe?, When I run on that is in error the >MS window closes >before I see what the error was. Thanks in advance.
Here is an old file I had around (cut and pasted below). Modifies lines in a file based on a simple pos search on each line. ASCII/text file. No waranty on how it will work for you. This was written for OS/2 but should run unchanged in windows.
For debug you can add the trace command. Most of my rexx has been simple scripts so Say and Trace have been enough. From the rexx docs: TRACE ?R /* Interactive debugging is switched on if it was off, */ /* and tracing results of expressions begins. */
You can switch off interactive debugging in several ways: * Entering TRACE O turns off all tracing. * Entering TRACE with no options restores the defaults--it turns off interactive debugging but continues tracing with TRACE Normal (which traces any failing command after execution). * Entering TRACE ? turns off interactive debugging and continues tracing with the current option. * Entering a TRACE instruction with a ? prefix before the option turns off interactive debugging and continues tracing with the new option.
Nitro wrote: > For debug you can add the trace command. Most of my rexx has been simple > scripts so Say and Trace have been enough.
I recently came across the fact that you could turn rexx tracing on by setting the RXTRACE environment variable to ON. This can be handy if you use external subroutines, or ::include libraries. If you find yourself about to call such an external routine (while tracing your own code) then you can enter: Call Value 'RXTRACE','ON','ENVIRONMENT' ... and see what the external routine does.
do while lines(fi_rm1) > 0 ws_inb = linein(fi_rm1) say 'ws_inb='ws_inb call lineout fi_out, ws_inb end
call lineout (fi_rm1) /* close */ call lineout (fi_out) /* close */ return
As for debugging - ask smarter guys than me. That said . . I do use 'trace' with a parm occasionally but usually when I've done a nono if prints up on the CMD window and describes the error very clearly. (Am ooRexx on XP though - shouldn't make a difference).
Many Rexx's have bitten me because i forgot to close the file. Read the manual about linein and how its coded (I say this because in the code above there is no explicit 'open' - ain't like cobol:-)) Hope this helps, Graham
On Fri, 18 Jul 2008 21:35:56 -0700 (PDT), globaloney
<jgol...@excite.com> wrote: >Hello. >I have had 20 +years working with Rexx on a mainframe but I am new to >working on a pc. >I have oorexx installed on my pc running Windows Vista OS. I need a >sample program to get me started.
>Could someone provide a sample list of commands to open a file on my >pc, read each line >and write each line to an output file?
>Also how do you debug a rexx.exe?, When I run on that is in error the >MS window closes >before I see what the error was. Thanks in advance.
Graham Hobbs wrote: > Many Rexx's have bitten me because i forgot to close the file. Read > the manual about linein and how its coded (I say this because in the > code above there is no explicit 'open' - ain't like cobol:-))
True true...
But for max I/O performance, methods were added which are FAR superior to LineIn / LineOut.
For example:
file=.stream~new('data.dat') file~open('READ') if result\='READY:' then do return 0 end
/* Check for how many lines the file has */ FILEsize=file~command('QUERY SIZE')
/* Read in the file */ /* This code requires at least ORexx 2.1.1 on Win32 - only tested with >=2.1.2 */ INstr=file~charin(1, FILEsize) FINDarray=INstr~makearray()
file~close()
Open/Close the file with the scream object. If it is not possible to have the complete data set in memory, the use LineIn/LineOut instead of charin/makearray.
globaloney <jgol...@excite.com> wrote: > Also how do you debug a rexx.exe?, When I run on that is in error the > MS window closes > before I see what the error was. Thanks in advance.
The simplest way is to have your code end with something like:
say "***" ; parse pull waste
so the exec waits for a final bit of input before ending.
You could put that in your error handler if normal execution is meant to produce no output, so only when something goes wrong does the window hand around.
globaloney wrote: > Hello. > I have had 20 +years working with Rexx on a mainframe but I am new to > working on a pc. > I have oorexx installed on my pc running Windows Vista OS. I need a > sample program to get me started.
> Could someone provide a sample list of commands to open a file on my > pc, read each line > and write each line to an output file?
> Also how do you debug a rexx.exe?, When I run on that is in error the > MS window closes > before I see what the error was. Thanks in advance.
Lots of good suggestions already so I will only add the following. OoRexx provides two additional ways to run a script besides REXX.EXE - REXXHIDE.EXE and REXXPAWS.EXE. You would use the first in cases where all of the user interaction is via dialogs so there would be no need for a "command window". It also would be useful for something meant to run in the "background". The second was added by Mark Hessling to mimic the default Regina behavior of leaving the command window open after the script terminates. The default "association" for the .rex extension is to invoke REXX.EXE but you COULD change it to run REXXPAWS for example if you wanted the command window to always remain open. In my opinion, however, the best way to debug a new script is to invoke it from an already open command window and make liberal use of TRACE to step through the parts of the program that aren't working as expected.
On Jul 20, 6:31 am, Gil Barmwater <gi...@bellsouth.net> wrote: In my opinion,
> however, the best way to debug a new script is to invoke it from an > already open command window and make liberal use of TRACE to step > through the parts of the program that aren't working as expected.- Hide quoted text -
IMO, for the serious REXX developer, by far the best way to debug an Object Rexx program is via the IBM Object Rexx Workbench Developer Edition (2.1+ upgradable).
With a little effort, detailed in my post to rony (29 May 2008 09:11:48) in the following link, it can be adapted to use the latest ooRexx version. It allows for just about full visual interactive debugging with watch variables, etc. It's a serious development environment in absence of ooRexx support for Eclipse.
> Hello. > I have had 20 +years working with Rexx on a mainframe but I am new to > working on a pc. > I have oorexx installed on my pc running Windows Vista OS. I need a > sample program to get me started.
> Could someone provide a sample list of commands to open a file on my > pc, read each line > and write each line to an output file?
> Also how do you debug a rexx.exe?, When I run on that is in error the > MS window closes > before I see what the error was. Thanks in advance.
> > Hello. > > I have had 20 +years working with Rexx on a mainframe but I am new to > > working on a pc. > > I have oorexx installed on my pc running Windows Vista OS. I need a > > sample program to get me started.
> > Could someone provide a sample list of commands to open a file on my > > pc, read each line > > and write each line to an output file?
> > Also how do you debug a rexx.exe?, When I run on that is in error the > > MS window closes > > before I see what the error was. Thanks in advance.
>> > Hello. >> > I have had 20 +years working with Rexx on a mainframe but I am new to >> > working on a pc. >> > I have oorexx installed on my pc running Windows Vista OS. I need a >> > sample program to get me started.
>> > Could someone provide a sample list of commands to open a file on my >> > pc, read each line >> > and write each line to an output file?
>> > Also how do you debug a rexx.exe?, When I run on that is in error the >> > MS window closes >> > before I see what the error was. Thanks in advance.
> >> > Hello. > >> > I have had 20 +years working with Rexx on a mainframe but I am new to > >> > working on a pc. > >> > I have oorexx installed on my pc running Windows Vista OS. I need a > >> > sample program to get me started.
> >> > Could someone provide a sample list of commands to open a file on my > >> > pc, read each line > >> > and write each line to an output file?
> >> > Also how do you debug a rexx.exe?, When I run on that is in error the > >> > MS window closes > >> > before I see what the error was. Thanks in advance.
> >> do infile~lines > >> outfile~lineout(infile~linein) > >> end
> >> infile~close > >> outfile~close
> >> Phil > >> ----
> >Thanks All. I am up and running
> Did you try mine and Phil's. Which one's better - if Phil's then I'll > use in future (seems cleaner). > Graham > ** Posted fromhttp://www.teranews.com**- Hide quoted text -
> - Show quoted text -
Sorry for taking so long to get back to you
I was originally using Nitro's(Bart's) code since I am not familiar with the oorexx language yet. His is similar to yours. It was working pretty well. I am using software called SPFLITE which simulates SPF edit functions like a mainframe. In my last line of code. I access my file thru SPFLite,review the output and exit.
Now I am trying a little more complicated process where I read in 3 infiles and write to 1 output file . I have run into a snag opening the output file at the end of the program. I get a file opened error in SPFLITE, however if I exit and then access the file,it is exactly as it should be. I tried adapting Phil's code but same deal, I don't think I am closing my file properly. Here are my last few lines of code to the output file. Am I closing the file properly? /*******************************************/ outfile = .stream~new(FILEOT1) do j=1 to tw innie=l.j outfile~lineout(innie) END trace i outfile~close /**************Edit file thru SPFLITE**************************************************/ address cmd "C:\Program Files\SPFLite\SPFLite.exe" FILEOT1
>>>>>Hello. >>>>>I have had 20 +years working with Rexx on a mainframe but I am new to >>>>>working on a pc. >>>>>I have oorexx installed on my pc running Windows Vista OS. I need a >>>>>sample program to get me started.
>>>>>Could someone provide a sample list of commands to open a file on my >>>>>pc, read each line >>>>>and write each line to an output file?
>>>>>Also how do you debug a rexx.exe?, When I run on that is in error the >>>>>MS window closes >>>>>before I see what the error was. Thanks in advance.
>>Did you try mine and Phil's. Which one's better - if Phil's then I'll >>use in future (seems cleaner). >>Graham >>** Posted fromhttp://www.teranews.com**- Hide quoted text -
>>- Show quoted text -
> Sorry for taking so long to get back to you
> I was originally using Nitro's(Bart's) code since I am not familiar > with the oorexx language yet. > His is similar to yours. It was working pretty well. I am using > software called SPFLITE which simulates SPF edit functions like a > mainframe. > In my last line of code. I access my file thru SPFLite,review the > output and exit.
> Now I am trying a little more complicated process where I read in 3 > infiles and write to 1 output file . I have run into a snag opening > the output file at the end of the program. I get a file opened error > in SPFLITE, however if I exit and then access the file,it is exactly > as it should be. I tried adapting Phil's code but same deal, I don't > think I am closing my file properly. > Here are my last few lines of code to the output file. Am I closing > the file properly? > /*******************************************/ > outfile = .stream~new(FILEOT1) > do j=1 to tw > innie=l.j > outfile~lineout(innie) > END > trace i > outfile~close > /**************Edit file thru > SPFLITE**************************************************/ > address cmd "C:\Program Files\SPFLite\SPFLite.exe" FILEOT1