Hallo JMP-Community,
Ich habe mit einem kurzen Skript herumgespielt, um Spalten automatisch anhand einer Anfangs- und Endzeichenfolge zu gruppieren. Während dies auf meinem lokalen Computer gut funktioniert, würde ich gerne wissen, ob es eine bessere Möglichkeit gibt, Standardeinträge für die Textbearbeitungsfelder beizubehalten ausführen, anstatt diese Standardeinträge in einer separaten Datei zu speichern?
Hier ist mein bisheriger Code: Irgendwelche Vorschläge zur Verbesserung eines Teils davon?
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);Meine Standardmethode, mit einer gespeicherten Datentabelle umzugehen, besteht darin, die Werte, die ich speichern muss, als JSL zu speichern.Ich erstelle einfach eine Textzeichenfolge mit der erforderlichen JSL, um die Werte zu initialisieren, und speichere sie mit Save Text File().Bei nachfolgenden Durchläufen verwende ich dann einfach ein Include(), um die Werte zu initialisieren.