테이블 스크립트의 전체 내용 (주석 포함)을 가져 오시겠습니까?내 데이터 테이블에 첨부 된 모든 JSL 스크립트를 구성하는 시스템을 마련하려고합니다.각 스크립트 상단의 주석에 헤더를 삽입하고 싶습니다.다음과 같이 표시됩니다.
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<CATEGORY>>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */</CATEGORY>
이 헤더 안에는 각 스크립트에 대한 일부 메타 데이터를 보관할 것입니다.예를 들어, 꺾쇠 괄호로 묶인 "스크립트 범주"필드입니다.이 메타 데이터를 기반으로 스크립트를 반복하고 조작 할 수 있기를 원합니다.
다음과 같이 데이터 테이블에 첨부 된 모든 스크립트 목록을 얻을 수 있다는 것을 알고 있습니다.
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
그런 다음 다음과 같은 스크립트의 내용을 얻을 수 있습니다.
scriptText = Char(dt << Get Table Property(scriptList[1]));
그러나 scriptText에는 주석이 포함되어 있지 않습니다.헤더 섹션이 누락되어 해당 댓글에 포함 된 메타 데이터에 액세스 할 수 없습니다.
얻을 방법이 있습니까? 완전한 주석을 포함한 테이블 스크립트의 텍스트?
스크립팅Re : 테이블 스크립트의 전체 내용 (코멘트 포함)을 가져 오시겠습니까?이 문제를 해결하기 위해 내가 아는 유일한 방법은 각 주석을 더미 리터럴 문자열에 배치하는 것입니다.
dt=current data table();
eval(parse("\[dt << new script("mysct",
comment="/**************************************/";
names default to here(1);
dt=current data table();
comment="// Here come more comments";
;]\")); Re : 테이블 스크립트의 전체 내용 (코멘트 포함)을 가져 오시겠습니까?감사.그것이 제가 두려워했던 것입니다. 코멘트 측면에서 어떤 종류의 추악한 kludge를 사용하는 것 외에는 프로그래밍 방식으로 코멘트에 액세스 할 수있는 방법이 없습니다.
나는 이것을 달성하는 더 좋은 방법을 알아 냈다.JSL 인터프리터가 주석 블록을 삭제하는 대신 유지하도록 속이는 JSL Quote () 내부에 헤더 주석 블록을 포함합니다.이제 카테고리 필드를 읽고 그에 따라 사용할 수 있습니다.
내 예제 스크립트는 다음과 같습니다.
JSL Quote(
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<MY category="">>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */
);
//this comment will be deleted
dt = Current Data Table();
scriptText = Char(dt << Get Table Property("my script name"));
scriptCategory = Char(Regex(scriptText,"\<\<([A-Za-z0-9 \/]*)\>\>", "\1"));
Write("\!n" || scriptText || "\!n");
Write("\!n" || scriptCategory || "\!n");</MY>그리고 로그에 대한 출력 :
JSL Quote(
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<MY category="">>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */
); dt = Current Data Table(); scriptText = Char(dt << Get Table Property("my script name")); scriptCategory = Char(Regex(scriptText, "\<\<([A-Za-z0-9 \/]*)\>\>", "\1")); Write("
" || scriptText || "
"); Write("
" || scriptCategory || "
")
my category</MY>