Thank you. Tried to run vs as admin.
same result

uninstalled and re-installed j805 into users directory.
same (negative) result.

I can however use J EXE Server via COM also in the 805 version (but want J DLL 
Server, which still gives me an error).

Any more ideas?

Sent from my iPhone

> On 13 Apr 2017, at 20:18, bill lam <[email protected]> wrote:
> 
> I am not sure. IIRC It works for me. Perhaps it is a security issue. try
> run visual studio as admin.
> 
> program files is protected, not sure if this is related to your problem.
> 
> 
> On 14 Apr, 2017 7:48 am, "Herbert Weissenbaeck // Privat" <
> [email protected]> wrote:
> 
> its regsvr32 without the "/r", i suppose.
> 
> in an admin console the registration seems to work. the J DLL Server
> (version 3) type library shows up in visual studio with file version 805.
> (the j804 one showed file version 701.)
> 
> however selecting it gives an error: "A reference to 'J DLL Server (version
> 3) Type Library' could not be added. Could not register the ActiveX type
> library 'C:\Program Files\j805\bin\j.dll'.
> 
> the same thing works without any problem with j804. why?
> 
> 
> Sent from my iPhone
> 
>> On 13 Apr 2017, at 19:22, bill lam <[email protected]> wrote:
>> 
>> typo, regsvr32
>> 
>>> On 14 Apr, 2017 7:21 am, "bill lam" <[email protected]> wrote:
>>> 
>>> jdllserver should work for all versions. try open an admin command prompt
>>> at bin folder and type
>>> regvsr32 /r j.dll
>>> 
>>> On 14 Apr, 2017 6:17 am, "Herbert Weissenbaeck // Privat" <
>>> [email protected]> wrote:
>>> 
>>> On my Windows 10 machine J805 fails to register as a COM Server.
>>> 
>>> When I use jreg.cmd under 804 I get a "J DLL Server (version 3) Type
>>> Library" in the kist of available Type Libraries in MS Visual Studio.
>>> 
>>> When I do the same with J805, no type library is registered.
>>> 
>>> Is this a bug or a feature? I would prefer working with 805 over 804.
>>> 
>>> Any hints/fixes?
>>> 
>>>> On 13 Apr 2017, at 16:23, 'Bo Jacoby' via Programming <
>>> [email protected]> wrote:
>>>> 
>>>> Hi Louis.
>>>> Thanks for asking. I regret not knowing the answer.
>>>> An ordinal fraction is like an array in J, with minor differences.
>>>> - Arrays have names. Ordinal fractions have numbers.
>>>> - An array has a finite number of dimensions. An ordinal fraction has
>>> an infinite number of dimensions.
>>>> - Arrays may have different shapes. All ordinal fractions have the
>>> same shape: 9 9 9 9 . . .
>>>> - Arrays have zero-origin indexing (0 1 . . .  n). Ordinal fractions
>>> have one-origin indexing (1 2 3 4 5 6 7 8 9).
>>>> 
>>>> - Arrays have elements. Ordinal fractions do not have elements.
>>>> - Arrays may have subarrays. All ordinal fractions have subordinate
>>> ordinal fractions.
>>>> - Array elements contain data. Any ordinal fraction may contain a data
>>> element.
>>>> Ordinal fractions were invented (by me) in 1980, but have had limited
>>> dissemination so far. I made programs in fortran and pascal and basic for
>>> manipulating ordinal fraction files, but I have not managed to do it in
> J.
>>> The programs were general, because the logic is in the data file and not
> in
>>> the program. I have been alone doing this.
>>>> Thanks! Bo.
>>>> 
>>>> 
>>>> 
>>>> 
>>>>  Den 20:08 torsdag den 13. april 2017 skrev Louis de Forcrand <
>>> [email protected]>:
>>>> 
>>>> 
>>>> Hi Bo,
>>>> This is cool.
>>>> 
>>>> As for the way you suggest using it here, isn't it equivalent to
>>> (without the first six rows of your data):
>>>> 
>>>> (~.@[ ,. +//.)/@|:
>>>> ?
>>>> 
>>>> Louis
>>>> 
>>>>> On 12 Apr 2017, at 21:57, 'Bo Jacoby' via Programming <
>>> [email protected]> wrote:
>>>>> 
>>>>> Hi Joe!
>>>>> My favorite datastructure is ORDINAL FRACTIONS - the algebra of data
>>>>> 
>>>>> |
>>>>> |
>>>>> |
>>>>> |  |    |
>>>>> 
>>>>> |
>>>>> 
>>>>> |
>>>>> |
>>>>> |    |
>>>>> ORDINAL FRACTIONS - the algebra of data
>>>>> This paper was submitted to the 10th World Computer Congress, IFIP 1986
>>> conference, but rejected by the referee....  |  |
>>>>> 
>>>>> |
>>>>> 
>>>>> |
>>>>> 
>>>>> 
>>>>> Your data are coded like this
>>>>> 10 Joe
>>>>> 20 Bob
>>>>> 30 Jane
>>>>> 01 blue
>>>>> 02 red
>>>>> 03 purple
>>>>> 11 1
>>>>> 11 -1
>>>>> 11 1
>>>>> 22 1
>>>>> 22 1
>>>>> 22 3
>>>>> 22 -1
>>>>> 22 -1
>>>>> 33 5
>>>>> 33 -2
>>>>> 33 2
>>>>> (Written with double CRs because the mail program has a history of
>>> deleting my CRs).
>>>>> Summation gives the result
>>>>> 10 Joe
>>>>> 20 Bob
>>>>> 30 Jane
>>>>> 01 blue
>>>>> 02 red
>>>>> 03 purple
>>>>> 11 1
>>>>> 22 3
>>>>> 
>>>>> 33 5
>>>>> I have not done the summation in J, but I'd like to do it.
>>>>> Perhaps this helps you.
>>>>> Bo.
>>>>> 
>>>>> 
>>>>> 
>>>>>   Den 0:04 torsdag den 13. april 2017 skrev chris burke <
>>> [email protected]>:
>>>>> 
>>>>> 
>>>>> Incidentally, for production code, I suggest starting by removing any
>>> sales
>>>>> not matched in returns and vice versa, so that the matching algorithm
> is
>>>>> applied only to potential matches.
>>>>> 
>>>>>> On Wed, Apr 12, 2017 at 2:53 PM, chris burke <[email protected]>
>>> wrote:
>>>>>> 
>>>>>> Great.
>>>>>> 
>>>>>> In case you need more complicated handling of the "gray area"
>>>>>> transactions, I believe they would be relatively few in number, so
>>> most of
>>>>>> the time you could do the matching efficiently, then check for any
> keys
>>>>>> with returns preceding sales. For those, setting aside the first such
>>>>>> return and repeating should clear them quickly.
>>>>>> 
>>>>>> Timing should be well under 1 second for a million records.
>>>>>> 
>>>>>>> On Wed, Apr 12, 2017 at 1:57 PM, Joe Bogner <[email protected]>
>>> wrote:
>>>>>>> 
>>>>>>> Just for completeness, I added a line that incorporates the sequence
>>> check
>>>>>>> into the cancel logic. Works great
>>>>>>> 
>>>>>>> NB. hui progressive index
>>>>>>> NB. http://code.jsoftware.com/wiki/Essays/Progressive_Index-Of
>>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>>> 
>>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>>> NB. result is the unmatched transactions
>>>>>>> matchtrans=: 3 : 0
>>>>>>> msk=. 0<{:"1 y
>>>>>>> sales=. msk#y
>>>>>>> returns=. (-.msk)#y
>>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>>> cancels=. ndx<#sales
>>>>>>> NB. ensure cancel is after sale
>>>>>>> cancels =. cancels *. (({."1 (<<(cancels)#ndx){sales) < ({."1
>>>>>>> (cancels#returns)))
>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>>> )
>>>>>>> 
>>>>>>> 
>>>>>>>> On Wed, Apr 12, 2017 at 4:14 PM, Joe Bogner <[email protected]>
>>> wrote:
>>>>>>>> 
>>>>>>>> Chris, this looks promising. Thanks for sharing. It's nearly instant
>>> on
>>>>>>> a
>>>>>>>> million rows.
>>>>>>>> 
>>>>>>>> Which row had a return before a transaction? seq 10 was an example
>>> of a
>>>>>>>> partial return. The hypothetical customer returned 2 out of the 5
>>>>>>> purchased
>>>>>>>> prior. I added that example since technically per the original spec
>>> it
>>>>>>>> wouldn't be cancelled out in this pass.  It's a gray area so I may
> be
>>>>>>> able
>>>>>>>> to use this approach, especially since I don't see how to
> incorporate
>>>>>>> the
>>>>>>>> time element into the progressive index.
>>>>>>>> 
>>>>>>>> Thanks again
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Wed, Apr 12, 2017 at 3:52 PM, chris burke <[email protected]>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> This might be done by comparing matrices of sales and returns. The
>>>>>>>>> function
>>>>>>>>> below seems to be close to what you want. It doesn't exactly match
>>> your
>>>>>>>>> example, but your example has cases where returns are made before
>>> the
>>>>>>>>> transactions. Was this intentional?
>>>>>>>>> 
>>>>>>>>> The code should run faster than a looping solution.
>>>>>>>>> 
>>>>>>>>> Code:
>>>>>>>>> 
>>>>>>>>> NB. hui progressive index
>>>>>>>>> NB. http://code.jsoftware.com/wiki/Essays/Progressive_Index-Of
>>>>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>>>>> 
>>>>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>>>>> NB. result is the unmatched transactions
>>>>>>>>> matchtrans=: 3 : 0
>>>>>>>>> msk=. 0<{:"1 y
>>>>>>>>> sales=. msk#y
>>>>>>>>> returns=. (-.msk)#y
>>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>>>>> cancels=. ndx<#sales
>>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>> Example:
>>>>>>>>> 
>>>>>>>>>   dat=: ".;._2 (0 : 0)
>>>>>>>>> 1 1 1
>>>>>>>>> 2 1 _1
>>>>>>>>> 3 1 1
>>>>>>>>> 4 2 1
>>>>>>>>> 5 2 1
>>>>>>>>> 6 2 3
>>>>>>>>> 7 2 _1
>>>>>>>>> 8 2 _1
>>>>>>>>> 9 3 5
>>>>>>>>> 10 3 _2
>>>>>>>>> 11 3 2
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>>   matchtrans dat
>>>>>>>>> 3 1 1
>>>>>>>>> 6 2 3
>>>>>>>>> 9 3 5
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Wed, Apr 12, 2017 at 9:35 AM, Joe Bogner <[email protected]>
>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> I have a problem I'm trying to solve in different languages. I
>>> have a
>>>>>>>>>> solution in SQL and also in kdb which largely resembles the SQL
>>>>>>>>> solution.
>>>>>>>>>> I'm curious what a J solution would look like. More specifically,
>>> I'm
>>>>>>>>>> interested in picking the brains of others here to see if this
> type
>>>>>>> of
>>>>>>>>>> problem can be solved without looping (some form of scan?).
>>>>>>>>>> 
>>>>>>>>>> EDIT: Initially I wrote this up thinking the J solution would
>>>>>>> difficult,
>>>>>>>>>> but it was actually fairly straightforward -- about 15 minutes,
> but
>>>>>>>>> still
>>>>>>>>>> would like to see if there are alternatives. If nothing else,
> maybe
>>>>>>> an
>>>>>>>>>> interesting problem to share.
>>>>>>>>>> 
>>>>>>>>>> Example data:
>>>>>>>>>> 
>>>>>>>>>> A store has a transaction log with a sequence for each
> transaction.
>>>>>>> The
>>>>>>>>>> transaction log records a key for a unique customer/item
>>> combination.
>>>>>>>>> The
>>>>>>>>>> transaction log records how many units were purchased or returned.
>>>>>>>>>> 
>>>>>>>>>> Goal:
>>>>>>>>>> Attempt to match up related transactions and cancel out instances
>>>>>>> when
>>>>>>>>> the
>>>>>>>>>> customer/item combination is returned at the same quantity as a
>>>>>>> previous
>>>>>>>>>> transaction
>>>>>>>>>> 
>>>>>>>>>> Examples:
>>>>>>>>>> 
>>>>>>>>>> Joe buys 1 blue pen, which is defective, then returns the 1
>>> defective
>>>>>>>>> blue
>>>>>>>>>> pen, then buys another blue pen. EXPECTED: cancel out first two
>>>>>>>>>> transactions and leave the the last one for 1 pen
>>>>>>>>>> 
>>>>>>>>>> Bob buys 2 red pens in two separate transactions. He then buys 3
>>>>>>> more.
>>>>>>>>> He
>>>>>>>>>> returns the first two purchases as two separate return
>>> transactions.
>>>>>>>>>> EXPECTED: cancel out all transactions except the one for qty 3
>>>>>>>>>> 
>>>>>>>>>> Jane buys 5 purple pens and subsequently returns two of them. She
>>>>>>> buys
>>>>>>>>> two
>>>>>>>>>> more. EXPECTED: No transactions match exactly, so nothing is
>>>>>>> cancelled
>>>>>>>>> out
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Data:
>>>>>>>>>> 
>>>>>>>>>> data=: 0 : 0
>>>>>>>>>> seq key qty
>>>>>>>>>> 1 1 1
>>>>>>>>>> 2 1 _1
>>>>>>>>>> 3 1 1
>>>>>>>>>> 4 2 1
>>>>>>>>>> 5 2 1
>>>>>>>>>> 6 2 3
>>>>>>>>>> 7 2 _1
>>>>>>>>>> 8 2 _1
>>>>>>>>>> 9 3 5
>>>>>>>>>> 10 3 _2
>>>>>>>>>> 11 3 2
>>>>>>>>>> )
>>>>>>>>>> tbl =: ,. ' ' cut every cutLF data
>>>>>>>>>> 'seqs keys qtys' =: |: ". every }. tbl
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Goal:
>>>>>>>>>> 
>>>>>>>>>> goals =: 0 : 0
>>>>>>>>>> 
>>>>>>>>>> goal
>>>>>>>>>> 
>>>>>>>>>> cancelled
>>>>>>>>>> 
>>>>>>>>>> credit
>>>>>>>>>> 
>>>>>>>>>> ok
>>>>>>>>>> 
>>>>>>>>>> cancelled
>>>>>>>>>> 
>>>>>>>>>> cancelled
>>>>>>>>>> 
>>>>>>>>>> ok
>>>>>>>>>> 
>>>>>>>>>> credit
>>>>>>>>>> 
>>>>>>>>>> credit
>>>>>>>>>> 
>>>>>>>>>> ok
>>>>>>>>>> 
>>>>>>>>>> ok
>>>>>>>>>> 
>>>>>>>>>> ok
>>>>>>>>>> 
>>>>>>>>>> )
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> tbl,.(cutLF goals)
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> One approach:
>>>>>>>>>> 
>>>>>>>>>> applycredits =: 3 : 0
>>>>>>>>>> 
>>>>>>>>>> goals=.(<'goal')
>>>>>>>>>> 
>>>>>>>>>> creditids=.0
>>>>>>>>>> 
>>>>>>>>>> for_i. (i. # seqs) do.
>>>>>>>>>> 
>>>>>>>>>> key=.i{keys
>>>>>>>>>> 
>>>>>>>>>> seq=.i{seqs
>>>>>>>>>> 
>>>>>>>>>> qty=.i{qtys
>>>>>>>>>> 
>>>>>>>>>> nextcredit =.| {. qtys #~ ((key=keys)*(seqs>seq)*(qtys<0))
>>>>>>>>>> 
>>>>>>>>>> if. nextcredit = qty do.
>>>>>>>>>> 
>>>>>>>>>> goals=.goals,<'cancelled'
>>>>>>>>>> 
>>>>>>>>>> creditids =. creditids, seqs #~ ((key=keys)*(seqs>seq)*(qtys<0))
>>>>>>>>>> 
>>>>>>>>>> elseif. creditids e.~ seq do.
>>>>>>>>>> 
>>>>>>>>>>   goals=.goals,<'credit'
>>>>>>>>>> 
>>>>>>>>>> elseif. do.
>>>>>>>>>> 
>>>>>>>>>>   goals=.goals,<'ok'
>>>>>>>>>> 
>>>>>>>>>> end.
>>>>>>>>>> 
>>>>>>>>>> end.
>>>>>>>>>> 
>>>>>>>>>> goals
>>>>>>>>>> 
>>>>>>>>>> )
>>>>>>>>>> 
>>>>>>>>>> tbl ,. ( applycredits 0 )
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>>> 
>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> (cutLF goals) -: ( applycredits 0 )
>>>>>>>>>> 
>>>>>>>>>> 1
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> thanks for any input
>>>>>>>>>> ------------------------------------------------------------
>>>>>>> ----------
>>>>>>>>>> For information about J forums see http://www.jsoftware.com/forum
>>>>>>> s.htm
>>>>>>>>> ------------------------------------------------------------
>>> ----------
>>>>>>>>> For information about J forums see http://www.jsoftware.com/forum
>>> s.htm
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> ------------------------------------------------------------
>>> ----------
>>>>>>> For information about J forums see http://www.jsoftware.com/forum
>>> s.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
>>> 
>>> ----------------------------------------------------------------------
>>> 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