Wow, it took some time for me to get back to this but I think I figured it out.
So instead of using evoke ... I used 0!:0 like so:
NB. =========================================================
NB.*createCMD (v) creates a temporary verb with a J sentence string
NB.
NB. y is: a string J sentence
NB. creates a GLOBAL variable eoeCMD
createCMD=: verb define
temp=. 'eoeCMD=: 3 : ''', y, ' y'''
0!:0 temp
)
createCMD '{. ~.'
eoeCMD ;: 'aa bb cc aa bb cc aa bb'
+--+
|aa|
+--+
createCMD '+/'
eoeCMD i. 5 5
50 55 60 65 70
I would appreciate it if somebody got a better idea. :)
Thanks.
r/Alex
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Markus Schmidt-Gröttrup
Sent: Tuesday, February 24, 2009 4:43 PM
To: Programming forum
Subject: Re: [Jprogramming] Executing a string command
Looking to the vocabulary page of Evoke I have:
cmd =. {.
'cmd'~ (i.10)
0
Regards, Markus
Alex Rufon schrieb:
> Hi.
>
> I've been tinkering with my old EDI parser and I would like to extend it
> with a new feature.
>
> NB. =========================================================
> NB. AS400 File Maps
> NB. Each mapping follows the following format
> NB. Source*Variable*Type*Length*Decimal*Justify*Default*Remarks
> NB.
> NB. Valid values for each values are:
> NB. Source - values corresponds to names defined in RECIEVING.IJS:
> NB. ENVELOP
> NB. PO_HEADER
> NB. PO_LINE_ITEM
> NB. DESTINATION_QUANTITY
> NB. SUB_LINE_ITEM
> NB. LOCAL - a local map specifiying non EDI retrievable values
> NB. Variable - Names defined in RECIEIVING.IJS for each Source
> NB. Type - Supported datatypes: CHR, NUM, DTE
> NB. note that for DATE the format will be YYYYMMDD
> NB. and for NUM there will be NO decimal/period character
> NB. Length - number of characters the entry will occupy
> NB. Decimal - valid only for numbers, this list the decimal positions
> NB. Justify - Justification, valid values are: LJ and RJ
> NB. Default - if the variable value is blank, use this value
> NB. Remarks - free text, NOT USED by code
> NB. Additional Operation - ADVANCED, additional operation to apply to
> variable
>
> NB. =========================================================
> NB.*PO_HEADER_MAP (n) definition for PO Header
> PO_HEADER_MAP=: unbox '*' cutstring each cutopen noun define
> LOCAL*SOURCE*CHR*8*0*LJ*POLO*Source Code*
> ENVELOP*SENDER_QUAL*CHR*2*0*LJ**IQ*
> ENVELOP*SENDER_ID*CHR*15*0*LJ**ID*
> PO_HEADER*PO_NO*CHR*30*0*LJ**PO NO*
> PO_HEADER*RELEASE_NO*NUM*3*0*RJ*000*PO REV*
> LOCAL*EDI_REVISION*NUM*3*0*RJ*000*EDI REV*
> PO_HEADER*PO_EXTRACT_DATE*DTE*8*0*LJ**PO Date*
> PO_HEADER*CUST_ORDER_NO*CHR*30*0*LJ**Contract No*
> LOCAL*LOT_NO*CHR*5*0*LJ**LOT No*
> )
>
> What I want to do is add the "Additional Operation" at the end. For
> example: in the entry
> LOCAL*LOT_NO*CHR*5*0*LJ**LOT No*
>
> I want to change it to:
> LOCAL*LOT_NO*CHR*5*0*LJ**LOT No*{.
>
> So the idea is that I would only take the first item in the data so to
> simulate:
> cmd=. '{.'
> (cmd)~ i. 10
> |ill-formed name
> | (cmd)~i.10
>
> (".(cmd)) 1 2 3
> |syntax error
> | (".(cmd))1 2 3
>
> What I did find out is that I can get away with it if I use the
> primitives:
> LOCAL*LOT_NO*CHR*5*0*LJ**LOT No*take
> cmd=. 'take'
> (cmd)~ 1 2 3
> 1
>
> Am I missing something or I really just have to use the primitives?
>
> Thanks.
>
> r/Alex
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm