問題
所以這是交易,我做了很多關於一般和特定受眾的JMP主題。不僅是不同的受眾,而且我在同一台筆記本電腦上使用Mac和PC虛擬機。
我最大的問題是鏈接到JMP期刊中的文件。 如果日誌是用於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”,無論打開Journal是哪個操作系統。
討論
現有腳本的快速而簡單的方法是在腳本按鈕中添加此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" ))
);
這給了我一個快速文本框消息,讓我知道路徑設置。
我確信至少有十幾種方法可以解決這個問題/這種方法很容易在現有的期刊上使用,鏈接可以在不同的人之間共享。如果您有類似或更好的方法,請發布它們,我很想知道其他人是如何解決這個問題的。