嘗試使用包含文件列表()大家好,
我正在嘗試使用 Include File List(),但出現錯誤。 它沒有像我預期的那樣工作。
這是一個例子。
我有 3 個名為 Include1.jsl、Include2.jsl、Include3.jsl 的文件,我試圖將它們包含到下面列出的 TestInclude.jsl 中:
Clear Log();
//Names Default To Here( 1 );
Clear Symbols();
Clear Globals();
Include( "Include1.jsl" );
Include( "Include2.jsl" );
Include( "Include3.jsl" );
show(Include File List());
所有四個文件都在同一個文件夾中。三個包含文件中的每一個都有其對應的
show("IncludeScriptN");其中 N 為 1、2 和 3
當我運行 TestInclude,jsl 時,我希望看到:
"IncludeScript1";
"IncludeScript2";
"IncludeScript3";
Include File List() = {"C:\...\TestingLocaleScipts\TestInclude.jsl", "C:\...\TestingLocaleScipts\Include1.jsl", "C:\...\TestingLocaleScipts\Include2.jsl", "C:\...\TestingLocaleScipts\Include3.jsl"};
相反,我看到了這個:
"IncludeScript1";
"IncludeScript2";
"IncludeScript3";
Include File List() = {"C:\...\TestingLocaleScipts\TestInclude.jsl"}那麼,包含的文件確實包含在內,它們確實有效,但函數沒有顯示它們? 我究竟做錯了什麼?
謝謝,
M.
回复:嘗試使用包含文件列表()@vince_faller很確定從用戶定義的函數調用 IncludeFileList 必須返回當前的包含文件堆棧,而不是定義函數時存在的堆棧。 正如您的示例所暗示的那樣,您可以通過在包含的文件內但在函數定義之外執行 IncludeFileList 來在函數定義時捕獲堆棧。
我確實認為最好的用例之一是從列表項 1 中獲取當前文件的名稱。
回复:嘗試使用包含文件列表()明白了。 非常感謝。 腳本索引或幫助中的解釋絕對不足以理解嵌套的方式:要么是包含在被稱為表單的腳本中的所有腳本,要么是來自它調用根腳本的所有腳本。回复:嘗試使用包含文件列表()@Craige_Hales
退休了還在工作?
您能解釋一下自定義錯誤報告的含義嗎?您是說錯誤發生在哪個腳本中?
因為我認為主要功能是向您展示您在通話時所處的腳本。
如果您所有的子腳本都只是不運行的函數,那麼您實際上看不到包含文件 list() 嵌套,對嗎?
Names default to here(1);
fn1 = Save Text File( "$temp/a.jsl", "show(Include File List()); f2 = function({}, include file list());" );
fn2 = Save Text File( "$temp/b.jsl", "include(fn1); f = function({}, include file list());" );
Include( fn2 );
show(f(), f2());回复:嘗試使用包含文件列表()該函數返回包含文件的當前嵌套。 在您調用它的根級別,只有一個文件,沒有實際的嵌套。 嘗試從包含的文件之一調用它。
fn1 = Save Text File( "$temp/a.jsl", "show(<SPAN>Include File List</SPAN>())" );
fn2 = Save Text File( "$temp/b.jsl", "include(fn1)" );
Include( fn2 );
包含文件列表() = {"C:\Users\v1\AppData\Local\Temp\a.jsl", "C:\Users\v1\AppData\Local\Temp\b.jsl", "Script.jsl" };
script.jsl 是未保存的根級腳本的名稱。
該函數用於實現自定義錯誤報告;如果出現問題嘗試()在 fn1 文件中,您可以編寫抓住報告嵌套包含的子句。 作為一個很酷的副作用,它還為您提供了當前腳本文件的名稱。
有兩種使用包含文件的方法:您可以將它們視為函數庫,或者您可以將它們視為要執行的代碼塊。 這包含文件列表如果它們是函數庫,則不是很有用,因為大多數代碼在包含運行時都沒有執行……它定義了函數並返回。 但是如果包含文件是一個代碼塊,在包含時運行,並且可能包含更多代碼塊,那麼包含文件列表可能有助於調試。