새 스크립트()로 서식 및 주석을 유지하는 방법은 무엇입니까?여러분, 안녕하세요,
또 나야. 또 다른 날, 또 다른 질문 
그래서 몇 가지 스크립트가 포함된 새 데이터 테이블을 만드는 멋진 긴 스크립트를 만들었습니다. 이를 위해 New Script() 함수를 사용합니다.
dt<< New script ("myscript",
// comments
//beautiful indentation
(
(
( ( instructions) )
)
)
)
);
내 문제는 dt 테이블 내부 스크립트를 확인할 때 레이아웃, 내 개인 들여쓰기 스타일, 빈 줄 등뿐만 아니라 모든 주석이 손실된다는 것입니다.
이 스크립트는 JSL에 익숙하지 않은 사용자를 위한 것이므로 주석과 원래 레이아웃을 유지해야 합니다.
내 스크립트를 문자열에 넣고 Append() 또는 Append Text()를 사용하는 것과 같은 작업을 시도했지만 성공하지 못했습니다.
mystring = " \[ // all my
// script
]\" ;
myscript = dt<<NEW script=""></NEW>불행히도 이것은 작동하지 않았습니다. 어떤 아이디어? Expr/Eval 등을 사용하는 몇 가지 트릭이 있습니까?
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?음, 음, 음, 승자가 있는 것 같군요!
나는 당신이 불가능해 보이는 문제에 대해 열심히 노력하고 있는데 누군가가 한 줄 스크립트로 해결책을 제시하는 것을 좋아합니다. :face_with_tears_of_joy:
정말 감사합니다 @XanGregg 
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?JSL Quote()가 도움이 될 수 있습니다.
New Table( "formatted script",
New Script( "my script",
Eval( Parse(JSL Quote(
// example
x = 1;
Print( :column 1[1], y );
) )
)
),
New Column( "Column 1", Set Values( [5] ) )
)
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?"라고 말씀하셨습니다. 내가 아는 한 데이터 테이블 내에서 스크립트를 참조할 수 있는 방법이 없으며 이것이 문제입니다. 내 말은 데이터 테이블이 없다는 것입니다: myscript 또는 datatable< " 위의 예제 코드를 실행한 후 이 메시지를 데이터 테이블로 보낼 수 있습니다.
dt << Get Script( "My Script" );
이제 표현식 또는 문자열 함수를 사용하여 데이터 테이블에서 스크립트를 편집할 수 있습니다.
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?안녕 @Mark_Bailey ,
이 코드 덕분에 정말 유용합니다.
그래서 한 가지 점을 해결합니다. 스크립트 창의 내용을 스크립트에 저장할 수 있습니다.
그러나 첫 번째 부분은 여전히 "JMP 스크립트는 다른 스크립트로 편집할 수 없습니다"는 사실인 것 같습니다. 제공해주신 스크립트는 New Script() 기능으로 매번 새로운 스크립트를 작성합니다.
내가 아는 한 데이터 테이블 내에서 스크립트를 참조할 수 있는 방법이 없으며 이것이 문제입니다. 내 말은 데이터 테이블이 없다는 것입니다: myscript 또는 datatable<
할 수 있는 일은 스크립트를 복사한 다음 새 스크립트에 붙여넣는 것뿐입니다. 그러나 JSL 표현식으로 변환하고 그 과정에서 주석과 서식을 삭제하므로 실제로는 문제가 해결되지 않습니다.
현재로서는 해결책이 없다는 것을 인정해야 할 때라고 생각합니다. JMP 위시리스트에 있으므로 @제프_퍼킨슨 언급,
관심있는 모든 사람들은 반드시 kudo를 확인하십시오 데이터에 첨부된 JSL 코드의 주석 및 공백 유지 !!
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?테이블 스크립트는 이러한 방식으로 저장된 스크립트를 실행할 수 있습니다.
Include( "My Path/My Script.jsl" );
스크립트를 어디에나(예: 단일 리포지토리 폴더) 배치하고 전체 경로를 포함할 수 있습니다.
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?"라고 말씀하셨습니다. JMP 스크립트는 다른 스크립트로 편집할 수 없는 것 같습니다. 창 안의 스크립트 상자에 스크립트를 작성하려고 했습니다.그러나 내가 아는 한 스크립트 상자의 내용은 데이터 테이블에 저장할 수 없습니다. "
것이 가능하다. 분명하지 않을 수도 있습니다. 하지만 기본이 아닌 스크립팅 기술이 필요합니다. 다음은 수행 방법을 설명하는 예입니다. 그것
Names Default to Here( 1 );
script window = New Window( "Script", << Modal,
sb = Script Box( "print(\!"Hello\!");" ),
H List Box(
Button Box( "OK", s = sb << Get Lines ),
Button Box( "Cancel" )
)
);
If( script window["Button"] == -1,
Throw( "User cancelled" );
);
Print( s );
n = N Items( s );
script = s[1];
For( line = 2, line <= n, line++,
script ||= "\!n" || s[line];
);
Print( script );
Eval( Parse( script ) );
Eval(
Substitute(
Expr( Current Data Table() << New Script( "My Script", sss ) ),
Expr( sss ),
Parse( script )
)
);
그러나 테이블 스크립트는 JSL 인터프리터와 마찬가지로 Parse() 함수가 형식을 버리기 때문에 형식을 잃습니다. 따라서 이 예제는 원래 문제를 해결하지 못합니다.
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?markbailey님, 감사합니다.
이것은 유용한 코드입니다. 함께 사용되는 데이터 테이블과 동일한 폴더에 .jsl 파일을 저장할 수 있을 것 같습니다. 그것은 일을하는 합리적인 방법이 될 것입니다.Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?스크립팅에 대한 JMP 교육 과정에서 이 문제에 부딪쳤습니다. 코드를 가능한 한 명확하게 만들기 위해 특정 스타일과 형식을 적용하여 항상 코드를 유지하고 싶었습니다. 우리의 해결책은 과정별로 생성된 JMP 저널을 활용하는 것이었습니다. 과정에서 제공하는 각 스크립트에 대한 버튼을 추가했습니다. 버튼 스크립트는 포맷된 스크립트를 스크립트 파일에 문자열로 저장한 후 열거나 실행합니다. 다음은 저널 버튼의 기능을 설명하는 매우 간단한 예입니다.
script = "dt = Open( \!"$SAMPLE_DATA/Big Class.jmp\!" );
dist = dt << Distribution( Y( :weight, :height ) );";
Save Text File( "My Script.jsl", script );
Open( "My Script.jsl" );
이 솔루션은 교육 목적에 적합합니다. 그래도 도움이 될 것 같지는 않습니다.
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?업데이트 :
JMP 스크립트는 다른 스크립트로 편집할 수 없는 것 같습니다. 창 안의 스크립트 상자에 스크립트를 작성하려고 했습니다.그러나 내가 아는 한 스크립트 상자의 내용은 데이터 테이블에 저장할 수 없습니다.
이것은 결국 실현 가능하지 않은 것 같습니다.
그러나 몇 가지 절반만 구운 백업 옵션은 다음과 같습니다.
- \[...]\를 사용하여 스크립트를 데이터 테이블에 텍스트 문자열로 저장할 수 있습니다. 그런 다음 사용자는 이동하여 댓글을 볼 수 있습니다. 또한 해당 문자열을 복사하여 새 스크립트에 붙여넣고 원래 레이아웃과 주석을 얻을 수 있습니다. 그다지 좋지는 않지만 사용자의 입력이 필요합니다.
- 또 다른 대체 옵션은 주석을 로그에 인쇄하는 스크립트에서 주석 기능을 만드는 것입니다. 또한 기본적으로 데이터 테이블에서 실행되는 스크립트에는 기본 제공 로그가 없으므로 그다지 좋은 옵션은 아닙니다.
- 또는 내 소스 코드를 단어나 PDF 문서의 리소스로 사용할 수 있습니다.
다른 아이디어, 통찰력 ??
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?감사합니다 제프,
이것이 답이 될까봐 두려웠습니다. 그러나 이것을 우회하는 DIY 솔루션이있을 수 있다고 생각합니다 ...
예를 들어, 모든 스크립트를 Expr() 문에 넣으려고 시도했는데 잘 내보내졌습니다. 물론 최종 스크립트에서 모든 것은 여전히 Expr의 대괄호 사이에 있습니다.
그러나 아마도 텍스트 편집 스크립트가 이것을 읽고 Expr과 대괄호를 삭제하여 원래 텍스트를 가질 수 있습니까?
제 질문은 이것이 가능합니까? 이런 식으로 스크립트가 다른 스크립트를 편집할 수 있습니까?
또는 내 데이터 테이블의 스크립트를 별도의 .jsl 파일로 저장한 다음 테이블에서 자동으로 가져오도록 할 수 있습니까?
어서, 이것을 할 수있는 방법이 있어야합니다 
Re: 새 스크립트()로 서식과 주석을 유지하는 방법은 무엇입니까?유감스럽게도 JMP는 데이터 테이블에 첨부된 스크립트에 대한 주석 및 서식을 유지하도록 설계되지 않았습니다. 이것은 JMP 위시리스트에서 요청되었습니다. JSL 코드에서 주석 및 공백 유지 . 당신의 지지를 나타내기 위해 그것을 칭찬하십시오. 개발자가 원하는 바를 알고 있는지 확인하겠습니다.