Thanks Gilles, my typo indeed !

> On 18 Nov 2017, at 4:57 am, Gilles Kirouac <[email protected]> wrote:
> 
> 1(0,+/\}.20 10 12)}42$0 NB. mask for length 10 12 20
> 
> 1(0,+/\}:20 10 12)}42$0 NB. Drop last, not first; for 20 10 12
> 
> 
> Le 2017-11-17 à 00:24, Daniel Lyons a écrit :
>> Thanks Rob!
>> 
>> I did feel that the general idea of the rolling sum generating the indices 
>> of the frets was not terrible, it just seemed like I was doing too much work 
>> to get there.
>> 
>> I have noticed that almost every time I ask for something, it's right there 
>> in the core documentation!
>> 
>>> On Nov 16, 2017, at 10:20 PM, Rob Hodgkinson <[email protected]> wrote:
>>> 
>>> I meant to add … which is very close to what you derived.
>>> 
>>> The key is the generation of the fret, another way here, but the group may 
>>> suggest better phrases;
>>>    1(0,+/\}.20 10 12)}42$0
>>> 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
>>> 0 0 0 0
>>> 
>>> …/Regards Rob
>>> 
>>>> On 17 Nov 2017, at 4:03 pm, Rob Hodgkinson <[email protected]> wrote:
>>>> 
>>>> Hi Daniel, there is a primer article on cut (using cut2) which may help 
>>>> you;
>>>>    http://www.jsoftware.com/help/primer/cut.htm
>>>> 
>>>> The last example shows fixed width cuts using a boolean mask, so your same 
>>>> example could be generated as so;
>>>> 
>>>> NB. This generates the fret as a boolean list
>>>>     (i.42) e. +/\0,20 10 12
>>>> 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
>>>> 0 0 0 0 0
>>>> 
>>>> NB. Now apply the fret to the data using the ‘cut’ conjunction and 
>>>> argument is < (enclose)
>>>>    ((i.42) e. +/\0,20 10 12) <;.1 'John Smith WA 418-Y11-4111’
>>>> ┌────────────────────┬──────────┬────────────┐
>>>> │John Smith          │WA        │418-Y11-4111│
>>>> └────────────────────┴──────────┴────────────┘
>>>> 
>>>> NB. Now use rank “1 to apply the function on vectors of the table argument 
>>>> (as in your example) 
>>>>    ((i.42) e. +/\0,20 10 12) <;.1"(1) 1 42$'John Smith WA 418-Y11-4111’   
>>>> NB.
>>>> ┌────────────────────┬──────────┬────────────┐
>>>> │John Smith          │WA        │418-Y11-4111│
>>>> └────────────────────┴──────────┴────────────┘
>>>> 
>>>> Hope this helps, Regards Rob
>>>> 
>>>> 
>>>>> On 17 Nov 2017, at 3:36 pm, Daniel Lyons <[email protected]> wrote:
>>>>> 
>>>>> My problem is essentially to give an input file and the column widths and 
>>>>> get it split up properly. I asked about it on the code review stack 
>>>>> exchange site, but there doesn't seem to be much traffic there, so I 
>>>>> figured maybe I could get a few eyes without annoying too many people 
>>>>> reposting here.
>>>>> 
>>>>> https://codereview.stackexchange.com/questions/180633/parsing-fixed-width-format-with-j
>>>>>  
>>>>> <https://codereview.stackexchange.com/questions/180633/parsing-fixed-width-format-with-j>
>>>>> 
>>>>> The solution I hacked up is this:
>>>>> 
>>>>> parseFW =: dyad def '(+/ (0,+/\x) ="(0 1) i. (+/x)) <;.1 y'"(_ _1)
>>>>> 
>>>>> Usage then looks like this:
>>>>> 
>>>>> (20 10 12) parseFW  1 42 $ 'John Smith          WA        418-Y11-4111'
>>>>> 
>>>>> I find this works, at least for the simple cases I have thrown at it so 
>>>>> far, but I can't help but feel there's too much happening here for 
>>>>> something fairly simple. I know where the frets are the rest is just 
>>>>> encoding them. In particular it felt like the inverse of I. should be 
>>>>> helpful but I didn't get that working.
>>>>> 
>>>>> If there's a library that does this, I'd probably rather use that, but I 
>>>>> didn't see one at first blush.
>>>>> 
>>>>> Input greatly appreciated! Thanks,
>>>>> 
>>>>> -- 
>>>>> Daniel Lyons
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> 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
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to