From: Rony G. F. <Ron...@wu...> - 2022-06-13 11:29:35
|
Hi Mike, On 6/13/2022 2:44 AM, hp...@we... wrote: > Am 12.06.2022 um 12:47 schrieb Rony G. Flatscher: >> sorry a glitch in the demo code that would not check for an >> asterisk in the first column, here the corrected (hypothetical and >> untested code sample: >> [...] > > Thank you for the correction. It shows, also you gave up > "pipe-thinking" in this first case because you prefer to filter in > the post-process than rather (and much simpler) in the pipeline ;) not necessarily. :) ooRexx comes with a pipe.cls that defines the following stages: ::class pipeStage public -- base pipeStage class ::class SecondaryConnector subclass pipeStage ::class after subclass pipeStage public -- write only records from first trigger record ::class all public subclass pipeStage -- a string selector pipeStage ::class arraycollector subclass pipeStage public -- collect items in an array ::class before subclass pipeStage public -- write only records before first trigger record ::class between subclass pipeStage public -- write only records from first trigger record ::class bitbucket public subclass pipeStage -- just consume the records ::class buffer subclass pipeStage public -- write only records before first trigger record ::class changestr public subclass pipeStage -- a string replacement pipeStage ::class charCount subclass pipeStage public -- count number of characters passed through the pipeStage ::class delstr public subclass pipeStage -- a string deletion pipeStage ::class displayer subclass pipeStage public ::class dropFirst public subclass pipeStage -- drop the first n records ::class dropLast public subclass pipeStage -- drop the last n records ::class dropnull public subclass pipeStage -- drop null records ::class duplicate public subclass pipeStage -- duplicate each record N times ::class fanin public subclass pipeStage -- process main stream, then secondary stream ::class fanout public subclass pipeStage -- write records to both output streams ::class insert public subclass pipeStage -- insert a string into each line ::class left public subclass pipeStage -- a splitter pipeStage ::class lineCount subclass pipeStage public -- count number of records passed through the pipeStage ::class lower public subclass pipeStage -- a lowercasing pipeStage ::class merge public subclass pipeStage -- merge the results from primary and secondary streams ::class notall public subclass pipeStage -- a string de-selector pipeStage ::class overlay public subclass pipeStage -- insert a string into each line ::class pivot subclass pipeStage public ::class reverse public subclass pipeStage -- a string reversal pipeStage ::class right public subclass pipeStage -- a splitter pipeStage ::class sort public subclass pipeStage -- sort piped data ::class sortWith public subclass pipeStage -- sort piped data ::class splitter subclass pipeStage public ::class startsWith public subclass pipeStage -- a string selector pipeStage ::class stemcollector subclass pipeStage public -- collect items in a stem ::class takeFirst public subclass pipeStage -- take the first n records ::class takeLast public subclass pipeStage -- take the last n records ::class upper public subclass pipeStage -- a uppercasing pipeStage ::class wordCount subclass pipeStage public -- count number of characters passed through the pipeStage ::class x2c public subclass pipeStage -- translate records to hex characters To see how one can use the ooRexx pipe.cls look up "ooRexx\samples\usepipe.cls". If you look up pipe.cls you should also see the programming pattern of the stages such that you might be able to add new stages of your own. It may be the case that your needs can be met with the means ooRexx has on board already. HTH, ---rony |