將資料表腳本與來自多個檔案的資料組合並儲存到 JSL 檔案中的腳本嘿大家!
好吧,嘗試了很長時間之後,我仍然不知道如何讓這段程式碼運作。我正在嘗試編寫一個腳本,該腳本允許用戶從打開的文件列表中進行選擇,對於選定的每個文件,代碼將複製數據表腳本,然後將它們全部粘貼到一個 JSL 文件中,我可以在稍後運行該文件並再次打開所有數據表。基本上就像將一堆資料表打包到一個檔案中(無需對它們進行 ZIP 壓縮),這樣更容易儲存更複雜的分析。這段程式碼完成了我想要的大部分工作,但我無法將表腳本儲存到 JSL 檔案中,它們一直想要開啟檔案的副本。
Names Default To Here(1);
nw = new window("Trial",show menu(0),
vlistbox(
hlistbox(
panelbox("Open data tables",
lb = listbox(get data table list ());
),
panelbox("Data tables to save into one script file",
lb2 = listbox();
),
),
buttonbox("press to select tables",dtla=lb << Get Selected;lb2 << Append( dtla ); ),
buttonbox("press to remove tables",lb2 << Remove Selected(); ),
panelbox("what is the file name?",
teb1=Texteditbox();
),
buttonbox("press to save",
dtlb=lb2 << Get items;
fn=teb1 << Get Text();
list_of_table_scripts={};
For( i = 1, i <= N Items( dtlb ), i++,
y = datatable(dtlb[i]) << Get Script With Data Table();
insertinto(list_of_table_scripts,y);
);
Save Text File( "$desktop\"||fn||".jsl", y );
nw<< Close Window;
)
)
);
teb1<< Set Width( 200 );
謝謝您的指導! !
史蒂夫
自動化和腳本回覆:將資料表腳本與來自多個檔案的資料合併並儲存到 JSL 檔案中的腳本我不建議將資料表儲存為腳本,除非它非常小,因為腳本的大小很快就會變得很大。但如果你真的想這樣做,你可以用類似這樣的方法
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
tables = Get Data Table List() << get name;
tablescripts = {};
For Each({tablename}, tables,
s = DataTable(tablename) << Get Script;
Insert Into(tablescripts, Char(Name Expr(s)));
);
Save Text File("$DOWNLOADS/demo.jsl", Concat Items(tablescripts, ";"));
回覆:將資料表腳本與來自多個檔案的資料合併並儲存到 JSL 檔案中的腳本根據您以後使用這些表格的方式,您可以將表格收集到 JMP Project 或 zip 檔案中(兩者都可以使用 JSL 完成)。如果您選擇這種方式,除非您希望使用 JMP Project 中的文件,否則您可能需要建立一個單獨的表格載入腳本。我個人非常不喜歡 JMP Project 的實作方式,所以我傾向於避免使用它們,但我有時會使用它們來打包 JMP 檔案以便存檔。
回覆:將資料表腳本與來自多個檔案的資料合併並儲存到 JSL 檔案中的腳本謝謝@jthi !
把你的程式碼加到我的程式碼裡,效果很好! !謝謝你提醒我文件大小,我會留意的。
Names Default To Here(1);
nw = new window("Trial",show menu(0),
vlistbox(
hlistbox(
panelbox("Open data tables",
lb = listbox(get data table list ());
),
panelbox("Data tables to save into one script file",
lb2 = listbox();
),
),
buttonbox("press to select tables",dtla=lb << Get Selected;lb2 << Append( dtla ); ),
buttonbox("press to remove tables",lb2 << Remove Selected(); ),
panelbox("what is the file name?",
teb1=Texteditbox();
),
buttonbox("press to save",
dtlb=lb2 << Get items;
fn=teb1 << Get Text();
tablescripts = {};
For Each({tablename}, dtlb,
s = DataTable(tablename) << Get Script;
Insert Into(tablescripts, Char(Name Expr(s)));
);
Save Text File( "$desktop\"||fn||".jsl", Concat Items(tablescripts, ";") );
nw<< Close Window;
)
)
);
teb1<< Set Width( 200 );
回覆:將資料表腳本與來自多個檔案的資料合併並儲存到 JSL 檔案中的腳本@jthi ,儲存到 ZIP 檔案的 JSL 是什麼?我在腳本索引裡沒看到什麼。
回覆:將資料表腳本與來自多個檔案的資料合併並儲存到 JSL 檔案中的腳本我認為你必須暫時保存你的表格,以便可以將它們加載為 blob
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save("$TEMP\blob.jmp"); // save jmp table to load it as a blob
Close(dt, no save);
b = Load Text File("$TEMP\blob.jmp", blob);
za = Open("$TEMP\deleteMe.zip", zip);
za << Write("Big Class.jmp", b);
Delete File("$TEMP\blob.jmp");
這裡可以添加相當多的改進。