C#.NETでJSLファイルを実行する際の問題<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はC#.NETラッパーでJSLファイルを実行しようとしています。ファイルを正常に実行することができますが、私のコードはスクリプトが終了するのを待ちません。以下はサンプルです:
JMP.Application jmpInstance = new JMP.Application();
FileInfo fJSLFile = new FileInfo(@ "C:\ Test \ Test.JSL");
jmpInstance.RunJSLFile(fJSLFile.ToString());
if(jmpInstance.HasRunCommandErrorString())
{
新しいApplicationException( "JMPスクリプトのエラー:" + jmpInstance.GetRunCommandErrorString());
}
再:C#の.NETでJSLファイルを実行する問題 @ChrisM 、
私は実際にあなたの提案と遊んでのちょっとした運を使ってそれを走らせることができた。これが私のC#コードが動作することです。
// Create an instance of JMP and make it visible
JMP.Application MyJMP;
MyJMP = new JMP.Application();
MyJMP.Visible = true;
MyJMP.ShowStartupWindow();
MyJMP.EnableInteractiveMode(true);
// create command
string arg1 = "base = 2"; // arguments to my User defined function in JSL
string arg2 = "expn = 3"; // arguments to my User defined function in JSL
MyJMP.RunCommand(arg1);
MyJMP.RunCommand(arg2);
string FilePathOfFileToRun = "C:\\Test.jsl";
MyJMP.RunJSLFile(FilePathOfFileToRun); // Running the user defined function
// Needed to keep JMP from automatically closing
JMP.DataTable dt = MyJMP.NewDataTable("test");
MyJMP.RunCommand(@Close(Data Table("test""), NoSave)");
再:C#の.NETでJSLファイルを実行する問題 @ChrisM 、
sをありがとうニペット。私は理解しようとしています、あなたのスニペットのどこであなたは関数を呼び出していますか?
TestPower = function({base,expn},{default local},
res = base ^ expn ;
Retrun(res);
);上に示したようなユーザー定義関数がJMPにあるとしましょう。さて、C#から始めて、baseとexpのパラメータを渡してこの関数を呼び出し、この関数を実行するにはどうすればよいでしょうか。
共有したスニペットは、RunCommand関数を使用して値を渡す方法について説明していますが、このような簡単な例を使用してプロセスをもう少し詳しく説明できますか。
だから、私は私のCにTestPower.jslとして格納されている上記の関数を持っている場合:私はそれをパラメータを渡し、この関数を呼び出すことで、私はC#を使用して実行する方法
再:C#の.NETでJSLファイルを実行する問題myJMP.RunCommand(command)を使います。C#のJMPにデータを渡す場合。ここで、commandは、変数を設定するためにC#で作成した文字列です。
例
JMP.Application myJMP = new JMP.Application();
string command = "a = 1";
myJMP.RunCommand(コマンド);
下記のコードスニペットの例:
以下に、スペックを持つ列にスペック制限プロパティを設定します。
JMP.Application myJMP = new JMP.Application();
foreach(スペック内のvar item)
{
bool setprops = false;
StringBuilder SpecList = new StringBuilder();
if(item.Value.LowerSpec.ToLower()!= "nan")
{
SpecList.Append( "LSL(Expr(" + item.Value.LowerSpec.ToLower()+ "))、");
setprops = true;
}
if(item.Value.UpperSpec.ToLower()!= "nan")
{
SpecList.Append( "USL(Expr(" + item.Value.UpperSpec.ToLower()+ "))、");
setprops = true;
}
// SpecList.Length--; //最後の文字をSBから削除します(終了コンマ)
if(setprops)
{
command = @ "Eval(
評価指数( "+
"列(dts、Expr(\" "+ item.Key +" \ "))<<プロパティの設定(" +
"\"スペック制限\ "、" +
"{" + SpecList.ToString()+ "制限の表示(1)}" +
@ "))
; ";
myJMP.RunCommand(コマンド);
}
}再:C#の.NETでJSLファイルを実行する問題 @gpuckett 、
あなたはこれを理解することができましたか?C#からJSL関数にパラメータを渡して実行することを検討しています。何か洞察を共有できますか。