문제
여기 거래가 있습니다. 일반 및 특정 잠재 고객을 대상으로 많은 JMP 주제를 많이 발표합니다. 다른 사용자뿐만 아니라 동일한 랩톱에서 Mac과 PC 가상 머신을 사용합니다.
내 큰 문제는 JMP Journals의 파일에 대한 링크 때문입니다. 저널이 PC 용이면 내 경로는 "y : \ Byron \ Example \ .."처럼 보일 수 있지만 Mac의 경우 "/ Users / Byron / Examples / .."와 유사합니다. 즉, 운영 체제에 따라 각 파일 링크를 코딩하거나 PC 및 Mac 용 저널의 두 가지 버전을 빌드하십시오.
해결책
나는 수년간 JSL을 작성해 왔지만 Joseph Morgan과 Jeff Polzin과의 점심 대화까지 클릭하지 않았습니다. (실제로, 그것은 그들의 대화 였고, 나는 듣고있었습니다. 좋은 날 JMP가 제 리그에서 약간 무거웠습니다.)
JSL에서는 경로 변수를 설정할 수 있습니다. 나는 "$ Sample_Data \ Big Class.jmp"를 영원히 사용했으며, 그 중 "$ Sample_Data"부분은 샘플 데이터 디렉토리에서 파일을 가져 오기 위해 JMP를 지시하는 경로 변수입니다. 경로 변수를 설정하는 것은 매우 간단합니다. 다음과 같이 이름과 경로를 제공하십시오.
Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" )
그래서 이제 파일 이름 "$ Examples \ eraseme.jmp"또는 이와 비슷한 것을 사용할 수 있습니다 :
open("$Examples\eraseme.jmp")
이 파일로 가려면.
일반 저널을 고객 전용 폴더로 이동할 때 매우 편리합니다. 저널과 고객 전용 데이터 파일이 같은 디렉토리에 있기 때문에 경로를 사용하여 파일을 가져올 필요가 없으며 "$ Examples \ ..."를 사용하여 일반 파일에 링크하면 링크가 작동합니다. 그러나 이것은 단지 작은 해결책 일뿐입니다. 더 큰 문제는 PC와 Mac 사이를 전환하는 것입니다.
다른 운영 체제를 다루기 위해 JSL을 사용하여 다음과 같은 운영 체제에 따라 Examples 경로를 정의합니다. (이것은 정말 좋은 부분입니다!)
If( Host is( Mac ), Set Path Variable( "Examples", "/Users/bywing/Byron Wingerd/Examples" ));
If( Host is( Windows ), Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" ));
내 JMP 세션의 시작 부분 (또는 저널의 단추)에서 약간의 JSL을 실행하면 호스트 운영 체제에서 "$ Example"이 올바르게 평가됩니다. 즉, 파일 링크 "$ Examples \ eraseme.jmp"는 저널이 열려있는 운영 체제에 관계없이 "eraseme.jmp"를 엽니 다.
토론
기존 스크립트의 경우 빠르고 간단하게이 JSL을 스크립트 버튼에 추가하여 일을 정렬 할 수 있습니다.
Names Default To Here( 1 );
If( Host is( Mac ), Set Path Variable( "Examples", "/Users/bywing/Byron Wingerd/Examples" ));
If( Host is( Windows ), Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" ));
pvex = Get Path Variable( "Examples" );
Dialog(
Title( "PATH VARIABLE SET!" ),
vlist(pvextb1 = Text Box( "Path variable $Examples set to:" ),
pvextb2 = Text Box( pvex ),
Button( "OK" ))
);
이렇게하면 경로가 설정되었음을 알려주는 간단한 텍스트 상자 메시지가 나타납니다.
이 문제를 해결할 수있는 방법은 적어도 십여 가지가 될 것이라고 확신합니다.이 접근법은 다른 저널간에 공유되는 링크가있는 기존 저널에 사용하기 쉽습니다. 비슷한 방법이나 더 나은 방법이 있다면 게시하여주십시오. 다른 사람들이이 문제를 어떻게 해결하고 있는지 궁금합니다.