Include Files List()を使用しようとしています皆さんこんにちは、
Include File List()を使用しようとしていますが、エラーが発生しています。期待したとおりに機能していません。
以下に例を示します。
Include1.jsl、Include2.jsl、Include3.jslという名前の3つのファイルがあり、以下にリストする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());
4つのファイルはすべて同じフォルダーにあります。 含まれている3つのファイルにはそれぞれ対応するファイルがあります
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.
再:インクルードファイルリスト()を使用しようとしていますこの関数は、インクルードファイルの現在のネストを返します。呼び出したルートレベルでは、ファイルは1つだけで、実際のネストはありません。含まれているファイルの1つから呼び出してみてください。
fn1 = Save Text File( "$temp/a.jsl", "show(<SPAN>Include File List</SPAN>())" );
fn2 = Save Text File( "$temp/b.jsl", "include(fn1)" );
Include( fn2 );
インクルードファイルList()= {"C:\ Users \ v1 \ AppData \ Local \ Temp \ a.jsl"、"C:\ Users \ v1 \ AppData \ Local \ Temp \ b.jsl"、"Script.jsl" };
script.jslは、未保存のルートレベルスクリプトの名前です。
この関数は、カスタムエラーレポートを実装するためのものです。何かがうまくいかない場合 try() fn1ファイルには、次のように記述できます。キャッチネストされたインクルードを報告する句。クールな副作用として、現在のスクリプトファイルの名前も表示されます。
インクルードファイルの使用方法は2つあります。それらを関数ライブラリと考えるか、実行するコードブロックと考えるかです。のファイルリストを含める関数ライブラリの場合、includeの実行中にほとんどのコードが実行されないため、あまり役に立ちません...関数を定義して返します。ただし、インクルードファイルがインクルードされたときに実行されるコードブロックであり、さらに多くのコードブロックが含まれる場合は、ファイルリストを含めるデバッグに役立つ場合があります。
再:インクルードファイルリスト()を使用しようとしていますしゅう
引退し、まだ働いていますか?
カスタムエラーレポートの意味を説明できますか?エラーが発生したスクリプトについてだけ言っていますか?
主な機能は、呼び出し時にどのスクリプトを使用しているかを示すことだと思ったからです。
すべての子スクリプトが実行されない関数のみである場合、実際にはインクルードファイル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());再:インクルードファイルリスト()を使用しようとしていますわかった。どうもありがとう。スクリプティングインデックスまたはヘルプの説明は、ネストがどの方向に進むかを理解するのに十分ではありません。フォームと呼ばれるスクリプトに含まれるすべてのスクリプト、またはルートと呼ばれる場所から来るすべてのスクリプトのいずれかです。再:インクルードファイルリスト()を使用しようとしていますしゅうユーザー定義関数からIncludeFileListを呼び出すことは、関数が定義されたときに存在したスタックではなく、インクルードファイルの現在のスタックを返さなければならないことを確認してください。サンプルのヒントとして、インクルードファイル内で関数定義の外でIncludeFileListを実行することにより、関数定義時にスタックをキャプチャできます。
最善の使用例の1つは、リストアイテム1から現在のファイルの名前を取得することだと思います。