如何使用“包含”编写紧凑代码?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好
我反复打开某种文件类型,该文件类型需要特殊的导入设置才能正确打开。
我希望能够以简短的形式编写这些导入设置。例如:
dt = open(“ fileref”,import settings(“ string_that_parses_correctly”);
其中“ string_that_parses_correctly”是整个字符串,用于保存设置的条件。就我而言,我使用:
“ string_that_parses_correctly” =
“行结束 ( CRLF , CR ,如果 ) ,
场尽 ( 标签 ) ,
删除报价 ( 1个 ) ,
使用撇号作为引号 ( 0 ) ,
扫描整个文件 ( 1个 ) ,
将空列视为数字 ( 0 ) ,
标签 ( 1个 ) ,
列名开始 ( 1个 ) ,
数据开始 ( 2 ) ,
读线 ( 所有 ) ,
年规则 ( “ 20xx” )”
我从打开这些文件之一生成的脚本中捕获了这些设置。
因此,有一种方法可以定义一个始终设置的字符串(例如,作为全局变量),以便在显示文件时可以使用它。
我希望这是有道理的。
问候
波尔·拉文·索伦森
回复:如何使用“包含”编写紧凑代码?您在文件引用周围缺少双引号。
您的命令openxls不执行任何操作。 您需要在其中添加OPEN。
关于JSL的优点之一是它的交互性。 生成字符串时,突出显示它,然后单击“运行”。 检查日志窗口,查看创建的内容。 不断迭代,直到获得所需的内容。
这可能是您要尝试执行的操作:
xls_fileid = “ \\服务器名\文件夹名\文件名.xls” ;
xls_settings = “ \ [
导入设置(
行尾(crlf,cr,lf),
字段结尾(标签),
带引号(1),
使用撇号作为引号(0),
扫描整个文件(1),
将空列视为numeric(0),
标签(1),
列名开始(1),
数据开始(2),
要读取的行(全部),
年规则(“ 20xx”)
)] \“ ;
openxls = evalinsert ( “ \ [open(” ^ xls_fileid ^“,^ xls_settings ^)] \” )
评估 ( 解析 ( openxls )) ;
回复:如何使用“包含”编写紧凑代码?再次嗨,这是我的JMPstart.jsl代码,它设置了xls_settings(为什么有时我无法将文本粘贴到这个窗口,我不知道),:

这是我尝试将字符串打开的示例,以打开实际的Excel文件:
xls_fileid = \\服务器名\文件夹名\文件名.xls ;
dlm =“,”;
dqm =“ \ [”] \“;
openxls = xls_fileid || dqm || dlm || xls_settings;
接着:
eval(parse(openxls));
但是引号不断引起错误。
关于波尔
回复:如何使用“包含”编写紧凑代码?您可以使用\ [... ] \将双引号放入字符串中。
或使用\!将其转义。”。 这里有些例子。
打印 ( “你好,世界” ) ;
//以下语句产生相同的结果:
打印 ( “\!“你好,世界\!”” ) ;
打印 ( “\[“你好,世界”]\” ) ;
从日志中:
“你好,世界”
“\!“你好,世界\!””
“\!“你好,世界\!””
回复:如何使用“包含”编写紧凑代码?嗨,我自己回答这个。
我的问题归结为将字符串组合成可解析的jsl的问题。
我定义了一个包含该字符串的字符串,该字符串为xls(csv)导入设置了特殊设置。它开始于: 进口设置(。。。);
然后,我想动态分配应该打开的文件,例如:
X ls_fileid =“ \\服务器\文件夹\文件名 “;
最后,我想将这两个结合起来:
openxls = xls_fileid || xls_settings;
eval(parse(openxls));
但是以某种方式弄混了双引号。
有人举过一个例子吗?
问候
波尔