如何使用'include'來編寫緊湊的代碼?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我反复打開某種文件類型,需要特殊的導入設置才能正確打開。
我希望能夠以簡短的形式編寫這些導入設置。例如:
dt = open(“fileref”,導入設置(“string_that_parses_correctly”);
其中“string_that_parses_correctly”是整個字符串,它保存設置的條件。在我的情況下,我使用:
“string_that_parses_correctly”=
“行結束 ( CRLF , CR ,如果 ) ,
結束 ( 標籤 ) ,
剝離行情 ( 1 ) ,
使用撇號作為引號 ( 0 ) ,
掃描整個文件 ( 1 ) ,
將空列視為數字 ( 0 ) ,
標籤 ( 1 ) ,
列名稱開始 ( 1 ) ,
數據開始 ( 2 ) ,
要閱讀的行 ( 所有 ) ,
年度規則 ( “20XX” )“
我從打開其中一個文件生成的腳本中捕獲了這些設置。
那麼有沒有辦法定義一個字符串,例如作為全局變量,總是被設置,以便我可以在打開文件時使用它,如圖所示。
我希望這是有道理的。
問候
PoulRavnSørensen
Re:如何使用'include'來編寫緊湊的代碼?您缺少文件引用周圍的雙引號。
你的命令openxls什麼都不做。 你需要為它添加OPEN。
JSL的一個好處是它的交互性。 在構建字符串時,突出顯示它並單擊“運行”。 檢查日誌窗口並查看您創建的內容。 繼續迭代,直到你得到你想要的。
這可能是你想要做的:
xls_fileid = “\\服務器\文件夾\ filename.xls” ;
xls_settings = “\ [
導入設置(
行尾(crlf,cr,lf),
字段結尾(標籤),
條引號(1),
使用撇號作為引號(0),
掃描整個文件(1),
將空列視為數字(0),
標籤(1),
列名稱開頭(1),
數據開始(2),
要讀的行(全部),
年規(“20xx”)
)] \“ ;
openxls = evalinsert ( “\ [open(”^ xls_fileid ^“,^ xls_settings ^)] \” )
EVAL ( 解析 ( openxls )) ;
Re:如何使用'include'來編寫緊湊的代碼?嗨再次,這是我的JMPstart.jsl代碼,它設置xls_settings(為什麼我有時不能將文本粘貼到這個窗口,我不知道),:

這是我嘗試生成字符串打開實際的Excel文件:
xls_fileid = \\服務器\文件夾\ filename.xls ;
DLM =“,”;
DQM =“\ [”] \“;
openxls = xls_fileid || || DQM DLM || xls_settings;
然後:
的eval(解析(openxls));
但引號仍然導致錯誤。
關心Poul
Re:如何使用'include'來編寫緊湊的代碼?你可以使用\ [... ] \將雙引號放入字符串中。
或者用\!“逃脫它們。” 這裡有些例子。
打印 ( “你好,世界” ) ;
//以下語句產生相同的結果:
打印 ( “\!“你好,世界\!”” ) ;
打印 ( “\[“你好,世界”]\” ) ;
從日誌中:
“你好,世界”
“\!“你好,世界\!””
“\!“你好,世界\!””
Re:如何使用'include'來編寫緊湊的代碼?嗨,我自己回答這個問題。
我的問題歸結為將字符串組合成一個可解析的jsl片段的問題。
我已經定義了一個包含字符串的字符串,它設置了xls(csv)導入的特殊設置。它開始: 進口設置(。。。);
然後我想動態分配應該打開的文件,如:
X ls_fileid =“ \\服務器\文件夾\文件名 “;
最後我想把這兩個結合起來:
openxls = xls_fileid || xls_settings;
的eval(解析(openxls));
但不知怎的,雙引號混淆了。
任何人都有一個如何做到這一點的例子?
問候
波爾