新手练习 JSL - 意外的“{”。可能缺少“;”或“,”你好,
我正在练习使用 JSL 通过文件对话框窗口选择要打开的 .jmp 文件。如果用户未做出选择,则退出。
但是,我收到以下错误:
意外的“{”。可能缺少“;”或“,”。
第 7 行第 21 列:if (Is Missing(fn)) ►{
其余被忽略的文本是
{退出();}打开(fn);
我的脚本如下:
// Open a dialog to choose a .jmp file to open
// Get the filename of the .jmp file to open
fn = Pick File("Select a .jmp file to open", "", {"JMP Files|jmp;jsl;jrn", "All Files|*"}, 1, 1, "Default Filename.jmp");
// If the user did not select a file, exit the script
if (Is Missing(fn)) {
exit();
}
// Open the selected file
Open(fn);如果有人能指出我在这里遗漏了什么,我将不胜感激。
谢谢。
自动化和脚本回复:新手练习 JSL - 意外的“{”。可能缺少“;”或“,”我建议你花点时间阅读一下《脚本指南》。你会发现这是学习 JSL 结构和语法的有效方法。
关于您的代码:
您的 If() 语句语法不正确。If() 语句的形式为:
If( condition1, result1, ,...,)
您收到的错误语句指向第 7 行,第 21 列“{”;您的 If() 函数有条件但没有结果。
If (Is Missing(fn))
它有一个条件,但第二个“)”结束了该语句。然后 JMP 遇到“{”,不知道如何处理它。我相信你真正想要的是:
If( Is Missing( fn ),
Exit(),
// Else Open the selected file
Open( fn )
);
我也建议你仔细考虑一下是否使用
Exit()
它终止 JMP。
您可能只想停止脚本的执行,但让用户保持 JMP 会话处于打开状态。为此,请使用
Throw()
功能。
回复:新手练习 JSL - 意外的“{”。可能缺少“;”或“,”您使用了不正确的语法(使用 ( 而不是 } 和 ) 而不是 },并且以 ; 结尾您的表达式)。
学习 JSL 时,您应该阅读Scripting Guide (jmp.com) 。还有关于 JSL 的课程,例如此处的JMP 脚本语言课程简介,还有 JSL Scripters Club 用户组JMP Scripters Club - JMP 用户社区提供的材料。