Robert, coincidentally I had the last Windows update just one hour ago; but the problem was there before and after.
I am presently traveling and have no access to any other computer than my notebook; thus I can not try to replicate my problem on another machine. (I am using VS 2017 Enterprise on an English Windows 10 an a ThinkPad P50 Xeon machine to develop an app that connects to J DLL Server. Had 804 so far but would like to switch to 805.) Is anybody successfully using the 32 bit 805 DLL Server from VS in a .net application? Best Herbert > On 13 Apr 2017, at 21:09, robert therriault <[email protected]> wrote: > > Herbert, > > This may not be related at all, but is this recent? I read that Windows 10 > had the Creative update pushed on it in the last couple of days and if it was > like the last time it may break some things. Not sure why it would affect 805 > and not 804. ;-) > > http://www.infoworld.com/article/3189776/microsoft-windows/microsofts-critical-windows-and-office-patches-present-a-panoply-of-problems.html > > Cheers, bob > >> On Apr 13, 2017, at 5:57 PM, Herbert Weissenbaeck // Privat >> <[email protected]> wrote: >> >> 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 > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
