View previous topic :: View next topic
|
Author |
Message |
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
That's greate Bipin.
buuuuuuuuuuuuut, you have a typo:
outputstem.j = stem1.r || stem1.s || stem1.t || stem1.u || stem5.v
sorry, could not resist. |
|
Back to top |
|
|
bipinpeter
Active User
Joined: 18 Jun 2007 Posts: 213 Location: Cochin/Kerala/India
|
|
|
|
Yes Dick you are right |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
Just for a laugh I tried to get this to work with a variable number of characters
Yeah, work is a little slow today
A bit cack-handed ....... but it does work
Code: |
/* REXX *** CARTESIAN JOIN OVER N STEMS
"ALTLIB DEACTIVATE APPL(EXEC)"
"ALTLIB ACTIVATE APPL(EXEC) DA('My REXX Library')"
"FREE FI(INDATA)"
"ALLOC FI(INDATA) DA('My REXX Library(CARTESA8)') SHR"
"EXECIO * DISKR INDATA ( STEM STM0. FINIS"
"FREE FI(INDATA)"
QUEUE """FREE FI(INDATA)"""
QUEUE """ALLOC FI(INDATA) DA('My REXX Library(CARTESA8)') SHR"""
QUEUE """EXECIO * DISKR INDATA ( STEM STM0. FINIS"""
QUEUE """FREE FI(INDATA)"""
QUEUE "DO AA = 1 TO STM0.0"
QUEUE " STM0.AA = STRIP(STM0.AA)"
QUEUE "END"
QUEUE "DO AA = 1 TO STM0.0"
QUEUE " DO AB = 1 TO STM0.0"
QUEUE ' INTERPRET "STM"AA"."AB "= STM0."AB '
QUEUE " END"
QUEUE "END"
"FREE FI(NEXREXX)"
"ALLOC FI(NEXREXX) DA('My REXX Library(CARTESA9)') SHR"
DO AA = 1 TO STM0.0
IF AA = 1 THEN DO
OUT = "/* TRACE R */"
QUEUE OUT
END
INTERPRET "OUT = 'DO A'"AA"' = 1 TO STM0.0'"
QUEUE OUT
END
"EXECIO" QUEUED() "DISKW NEXREXX"
DO AA = 1 TO STM0.0
IF AA = 1 THEN DO
OUT = "OUTPT = STM0.A"AA"|| ,"
QUEUE OUT
END
ELSE DO
IF AA = STM0.0 THEN DO
OUT = " STM0.A"AA
QUEUE OUT
OUT = "SAY OUTPT"
QUEUE OUT
END
ELSE DO
OUT = " STM0.A"AA"|| ,"
QUEUE OUT
END
END
END
DO AA = 1 TO STM0.0
OUT = "END"
QUEUE OUT
END
"EXECIO" QUEUED() "DISKW NEXREXX ( FINIS"
CALL CARTESA9
EXIT
|
|
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2547 Location: Silicon Valley
|
|
|
|
In Bipinpeter's example:
Code: |
outputstem.0 = 1
...
j = outputstem.0
outputstem.j = stem1.r || stem1.s || stem1.t || stem1.u || stem5.v
outputstem.0 = outputstem.0 + 1
....
outputstem.0 = outputstem.0 - 1 |
I suggest starting with 0 and only incrementing when you have the next value. Then you do not need to subtract:
Code: |
j = 0
...
j = j + 1
outputstem.j = stem1.r || stem1.s || stem1.t || stem1.u || stem1.v
....
outputstem.0 = j
|
[/code] |
|
Back to top |
|
|
|