Ciao comunità JMP,
Ho giocato con un breve script per raggruppare automaticamente la colonna in base a una stringa iniziale e finale. Sebbene funzioni correttamente sul mio computer locale, vorrei sapere se esiste un modo migliore per preservare le voci predefinite per le caselle di modifica del testo da eseguire per eseguire piuttosto che tenere quelle voci predefinite in un file separato?
Ecco il mio codice finora: Qualche suggerimento su come migliorarne una parte?
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);Il mio modo standard di gestire ciò che stai facendo con una tabella di dati salvati è salvare i valori che devo salvare, come JSL.Creo solo una stringa di testo con il JSL richiesto per inizializzare i valori e salvarlo utilizzando Save Text File().Quindi, nelle esecuzioni successive, utilizzo semplicemente un Include() per inizializzare i valori.