[Jprogramming] Getting J to work with .NET

Alex Rufon alex_rufon at ist-systems.com
Fri Jul 9 20:53:07 HKT 2010


I wrote a wrapper function for that, so you can just do:
 var session = new Session();
 session.Eval("result=: 2 + 2");
 var result = session.Variable("result");
 Console.Write(result);
 session.Load("C:\samplescript.ijs");
but it's essentially the same as what Raul is suggesting:
 /// <summary>
 /// Loads an external script into the current J session
 /// </summary>
 /// <param name="fileName">Complete path and filename to the script to be loaded</param>
 public void Load(string fileName)
 {
 string script;
 // Assign the filename to a J variable
 this.Variable("script2load",fileName);
 // Check if were in debug mode first.
 if (this.debug)
 {
 // Were debugging so we show what were loading and stop on error
 script = "0!:001 < script2load";
 }
 else
 {
 // Not debugging, dont need to show script
 script = "0!:0 < script2load";
 }
 // Now evaluate the script.
 this.Eval(script);
 }
-----Original Message-----
From: programming-bounces at jsoftware.com [mailto:programming-bounces at jsoftware.com] On Behalf Of Raul Miller
Sent: Friday, July 09, 2010 8:21 PM
To: Programming forum
Subject: Re: [Jprogramming] Getting J to work with .NET
On Fri, Jul 9, 2010 at 8:15 AM, Mark Needham <m.h.needham at gmail.com> wrote:
> Cool! I changed it a little to work in C#:
>>            var session = new Session();
>            session.Eval("result=: 2 + 2");
>            var result = session.Variable("result");
>            Console.Write(result);
>> What would I need to do if I wanted to execute a J script file 
> directly rather than just individual expressions?

session.Eval("0!:0<'script.ijs'");
ought to work
Or, if you want a dynamic name, use a variable to identify the script.
--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


More information about the Programming mailing list

AltStyle によって変換されたページ (->オリジナル) /