여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 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 );
어떤 지침이라도 감사합니다!!
스티브
자동화 및 스크립팅Re: 여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 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, ";"));
Re: 여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 JSL 파일에 저장하기 위한 스크립트나중에 테이블을 어떻게 사용할지에 따라 JMP Project나 zip 파일로 수집할 수 있습니다(둘 다 JSL로 가능합니다). JMP Project의 파일을 사용하지 않으려면 이 방법을 사용할 경우 별도의 테이블 로더 스크립트를 만들어야 할 수도 있습니다. 저는 개인적으로 테이블 로더 구현 방식을 좋아하지 않아서 피하는 편이지만, JMP 파일을 보관 목적으로 패키징할 때는 가끔씩 사용했습니다.
Re: 여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 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 );
Re: 여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 JSL 파일에 저장하기 위한 스크립트@jthi , ZIP 파일로 저장하려면 어떤 JSL을 사용해야 하나요? 스크립팅 인덱스에 아무것도 없네요.
Re: 여러 파일의 데이터를 사용하여 데이터 테이블 스크립트를 결합하고 JSL 파일에 저장하기 위한 스크립트테이블을 일시적으로 저장하여 블롭으로 로드해야 할 것 같습니다.
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");
여기에는 추가할 수 있는 개선 사항이 꽤 많습니다.