From: Leslie T. <jlt...@ce...> - 2011-08-28 04:37:37
|
Up to now I have used the classic Rexx method of retrieving the output from external commands: "some_command", "|rxqueue" line.0 = queued() do l = 1 to line.0 parse pull line.l end : Is there an oo method for doing this? arrayin appears to be able to read from a file, but doesn't pick up the output from an external command. I don't see anything in the docs for the queue class either. Leslie |
From: Robert H. <bob...@gm...> - 2011-08-28 16:12:58
|
"DIR", "|rxqueue" line.0 = queued() do l = 1 to line.0 parse pull line.l say line.l end works in parse version V say V "which shows " REXX-ooRexx_4.1.0(MT) 6.03 5 Dec 2010 Volume in drive C has no label. Volume Serial Number is E4F5-457C Directory of C:\Program Files\ooRexx 08/19/2011 11:03 AM <DIR> 08/19/2011 11:03 AM <DIR> .. 12/06/2010 03:52 PM <DIR> api 09/21/2010 10:00 PM 11,839 CPLv1.0.txt 09/21/2010 10:00 PM 22,491 csvStream.cls 12/06/2010 03:52 PM <DIR> doc 12/05/2010 10:52 AM 73,216 host . . . . et c. Which brings up an interesting point. I am working on a Concordance for REXX the 'Genera'. Thanks for the example and enjoy the day, or evening. Bob Hamilton Richardson Texas USA On 8/27/11, Leslie Turriff <jlt...@ce...> wrote: > Up to now I have used the classic Rexx method of retrieving the output > from external commands: > > "some_command", > "|rxqueue" > line.0 = queued() > > do l = 1 to line.0 > parse pull line.l > end > : > > Is there an oo method for doing this? arrayin appears to be able to read > from a file, but doesn't pick up the output from an external command. I > don't > see anything in the docs for the queue class either. > > Leslie > > ------------------------------------------------------------------------------ > EMC VNX: the world's simplest storage, starting under $10K > The only unified storage solution that offers unified management > Up to 160% more powerful than alternatives and 25% more efficient. > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > _______________________________________________ > Oorexx-users mailing list > Oor...@li... > https://lists.sourceforge.net/lists/listinfo/oorexx-users > |
From: Leslie T. <jlt...@ce...> - 2011-08-28 20:04:32
|
Certainly; but what I'm looking or is the "Object Oriented" equivalent of that "functional" method. BTW, I'm running REXX-ooRexx_3.2.0(MT) 6.02 30 Oct 2007 in OpenSuSE Linux 11.4. Leslie On Sunday, August 28, 2011 11:12:51 AM Robert Hamilton wrote: > "DIR", > "|rxqueue" > line.0 = queued() > > do l = 1 to line.0 > parse pull line.l > say line.l > end > > works in > parse version V > say V "which shows " > > REXX-ooRexx_4.1.0(MT) 6.03 5 Dec 2010 > > > > Volume in drive C has no label. > Volume Serial Number is E4F5-457C > > Directory of C:\Program Files\ooRexx > > 08/19/2011 11:03 AM <DIR> > 08/19/2011 11:03 AM <DIR> .. > 12/06/2010 03:52 PM <DIR> api > 09/21/2010 10:00 PM 11,839 CPLv1.0.txt > 09/21/2010 10:00 PM 22,491 csvStream.cls > 12/06/2010 03:52 PM <DIR> doc > 12/05/2010 10:52 AM 73,216 host > > . > . > . > . et c. > > Which brings up an interesting point. I am working on a Concordance > for REXX the 'Genera'. > > Thanks for the example and enjoy the day, or evening. > > Bob Hamilton > Richardson Texas USA > > On 8/27/11, Leslie Turriff <jlt...@ce...> wrote: > > Up to now I have used the classic Rexx method of retrieving the output > > > > from external commands: > > "some_command", > > > > "|rxqueue" > > > > line.0 = queued() > > > > do l = 1 to line.0 > > > > parse pull line.l > > > > end > > > > Is there an oo method for doing this? arrayin appears to be able to > > read > > > > from a file, but doesn't pick up the output from an external command. I > > don't > > see anything in the docs for the queue class either. > > > > Leslie > > > > ------------------------------------------------------------------------- > > ----- EMC VNX: the world's simplest storage, starting under $10K > > The only unified storage solution that offers unified management > > Up to 160% more powerful than alternatives and 25% more efficient. > > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > > _______________________________________________ > > Oorexx-users mailing list > > Oor...@li... > > https://lists.sourceforge.net/lists/listinfo/oorexx-users > > --------------------------------------------------------------------------- > --- EMC VNX: the world's simplest storage, starting under $10K > The only unified storage solution that offers unified management > Up to 160% more powerful than alternatives and 25% more efficient. > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > _______________________________________________ > Oorexx-users mailing list > Oor...@li... > https://lists.sourceforge.net/lists/listinfo/oorexx-users |
From: Jean-Louis F. <jfa...@gm...> - 2011-09-01 06:43:43
|
2011/8/28 Leslie Turriff <jlt...@ce...> > Certainly; but what I'm looking or is the "Object Oriented" > equivalent of > that "functional" method. > Something like that ? "dir | rxqueue" ; do line over .rexxqueue~new ; say line ; end If you want to hide the pipe to rxqueue, you can define a tiny .SystemQueue class, and use it like that : do line over .SystemQueue~new("dir") ; say line ; end ::class SystemQueue subclass RexxQueue ::method init use strict arg command command "| rxqueue" self~init:super Jean-Louis |
From: Jean-Louis F. <jfa...@gm...> - 2011-09-01 08:05:20
|
In case you need to run several commands, you may need distinct queues for each execution. Example : queue1 = .SystemQueue~run("dir c:\") say "queue" queue1 "of type" queue1~class queue2 = .SystemQueue~run("dir c:\w*") say "queue" queue1 "of type" queue1~class say "----------" do 5 say "queue1:" queue1~pull say "queue2:" queue2~pull end say "---------- queue1" do line over queue1 ; say line ; end say "---------- queue2" do line over queue2 ; say line ; end ::class SystemQueue subclass RexxQueue ::method "run" class use strict arg command queue = self~new(self~create) command '| rxqueue "'queue~get'"' return queue ::method uninit say "delete" self~get self~delete |
From: Leslie T. <jlt...@ce...> - 2011-09-04 05:18:31
|
Thanks very much; this is just what I was trying to figure out. Leslie On Thursday, September 01, 2011 03:05:13 AM Jean-Louis Faucher wrote: > In case you need to run several commands, you may need distinct queues for > each execution. > Example : > > queue1 = .SystemQueue~run("dir c:\") > say "queue" queue1 "of type" queue1~class > queue2 = .SystemQueue~run("dir c:\w*") > say "queue" queue1 "of type" queue1~class > say "----------" > do 5 > say "queue1:" queue1~pull > say "queue2:" queue2~pull > end > say "---------- queue1" > do line over queue1 ; say line ; end > say "---------- queue2" > do line over queue2 ; say line ; end > > ::class SystemQueue subclass RexxQueue > ::method "run" class > > use strict arg command > queue = self~new(self~create) > command '| rxqueue "'queue~get'"' > return queue > > ::method uninit > > say "delete" self~get > self~delete |