Include Files List ()를 사용하려고합니다.모두들 안녕,
Include File List ()를 사용하려고하는데 오류가 발생합니다. 예상대로 작동하지 않습니다.
다음은 예입니다.
아래에 나열된 TestInclude.jsl에 포함하려고하는 Include1.jsl, Include2.jsl, Include3.jsl이라는 3 개의 파일이 있습니다.
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"}따라서 포함 된 파일이 실제로 포함되어 실제로 작동하지만 기능이 표시하지 않습니까? 내가 무엇을 잘못하고 있지?
감사,
엠.
Re : Include Files List ()를 사용하려고합니다.이 함수는 포함 된 파일의 현재 중첩을 반환합니다. 호출 한 루트 수준에는 파일이 하나만 있고 실제 중첩은 없습니다. 포함 된 파일 중 하나에서 호출 해보십시오.
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 파일에서 잡기 중첩 된 include를보고하는 절입니다. 멋진 부작용으로 현재 스크립트 파일의 이름도 제공합니다.
포함 파일을 사용하는 두 가지 방법이 있습니다. 파일을 함수 라이브러리로 생각하거나 실행할 코드 블록으로 생각할 수 있습니다. 그만큼 파일 목록 포함 include가 실행되는 동안 대부분의 코드가 실행되지 않기 때문에 함수 라이브러리 인 경우에는 그다지 유용하지 않습니다. 함수와 리턴을 정의합니다. 그러나 포함 파일이 포함되었을 때 실행되는 코드 블록이고 더 많은 코드 블록을 포함 할 수있는 경우 파일 목록 포함 디버깅에 도움이 될 수 있습니다.
Re : Include Files List ()를 사용하려고합니다.@
은퇴하고 여전히 일하고 있습니까?
사용자 정의 오류보고의 의미를 설명 할 수 있습니까? 오류가 발생한 스크립트에 대해서만 말씀하십니까?
주요 기능은 호출 할 때 어떤 스크립트를 사용하고 있는지 보여주는 것입니다.
모든 하위 스크립트가 실행되지 않는 함수 인 경우 실제로 include file 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());Re : Include Files List ()를 사용하려고합니다.이해했다. 고마워 스크립팅 색인 또는 도움말의 설명은 중첩이 어떤 방식으로 진행되는지 이해하기에는 충분하지 않습니다.Re : Include Files List ()를 사용하려고합니다. vince 사용자 정의 함수에서 IncludeFileList를 호출하면 함수를 정의 할 때 존재했던 스택이 아니라 포함 파일의 현재 스택을 반환해야합니다. 예제에서 알 수 있듯이 포함 된 파일 내에서 함수 정의 외부에서 IncludeFileList를 실행하여 함수 정의시 스택을 캡처 할 수 있습니다.
가장 좋은 사용 사례 중 하나는 목록 항목 1에서 현재 파일의 이름을 얻는 것입니다.