안녕하세요 JMP 커뮤니티,
나는 시작과 끝 문자열을 기반으로 열을 자동으로 그룹화하는 짧은 스크립트로 놀았습니다.이 작업은 로컬 컴퓨터에서 잘 작동하지만 텍스트 편집 상자에 대한 기본 항목을 보존하는 더 좋은 방법이 있는지 알고 싶습니다. 기본 항목을 별도의 파일에 보관하는 것보다 실행하려면
지금까지 내 코드는 다음과 같습니다. 개선에 대한 제안이 있습니까?
Names Default to Here (1);
dt = Current Data Table ();
CList = dt << get column names (string);
GList = {};
NCol = N Items (CList);
Try (dat = open("C:\AUTODAT.JMP", Invisible),
dat = new table ("AUTODAT", Invisible,
Add Rows (2),
New Column ("Entries", Character, Nominal, set values ({"NEW START", "NEW END"}))
);
);
DefStart = column (dat, "Entries") [1];
DefEnd = column (dat, "Entries") [2];
Dlg = New Window (" AUTO-GROUPING: ENTER SEARCH STRINGS",
<< Modal,
Border Box (top (15), Bottom (15), Left (40), Right (40),
V List Box (
Text Box ("ENTER START STRING:"),
ST = Text Edit Box (DefStart, Set Width (200)),
Spacer Box (0,25),
Text Box ("ENTER END STRING:"),
ET = Text Edit Box (DefEnd, Set Width (200)),
Spacer Box (0,25),
Button Box ("OK",
StartString = ST << Get Text ();
EndString = ET << Get Text ()
),
Button Box ("CANCEL",
Close( dat, NoSave );
Throw (1))
)
)
);
Column (dat, "Entries") << set values (Eval List ({StartString, EndString}));
dat << Save As ("C:\AUTODAT.JMP", 1);
Close (dat, NoSave);
Switch = ((Length (StartString) > 0) * 10) + (Length (EndString) > 0);
For (i = 1, i <= NCol, i++,
Match (Switch,
11,
if(Starts With (CList [i], StartString) & Ends With (CList [i], EndString),
Insert into (GList, CList [i])),
10,
if(Starts With (CList [i], StartString),
Insert into (GList, CList [i])),
1,
if(Ends With (CList [i], EndString),
Insert into (GList, CList [i])),
0, Throw (1)
)
);
Group = dt << Group Columns (GList);저장된 데이터 테이블로 수행하는 작업을 처리하는 표준 방법은 저장해야하는 값을 JSL로 저장하는 것입니다.값을 초기화하는 데 필요한 JSL로 텍스트 문자열을 만들고 Save Text File ()을 사용하여 저장합니다.그런 다음 후속 실행에서 Include ()를 사용하여 값을 초기화합니다.