Hallo alle,
Ich habe verschiedene Datentabellen, die ich aus anderen Tabellen erstellt habe. In jeder Datentabelle enthält sie Zeichenfolgen variabler Länge im Format Zeichen im gleichen Spaltennamen. Ich habe unten einige Beispiele hinzugefügt. Ich versuche, die letzten 4 Zeichen der Zeichenfolge aus der Spalte zu entfernen und alles andere beizubehalten. Die letzten 4 Zeichen sind immer "DATA", . Ich habe versucht, eine if-Anweisung zu erreichen, um verschiedene Datentabellen zu verknüpfen und Left() und Contains() zu verwenden, aber ich denke, die Art und Weise, wie ich sie geschrieben habe, ist falsch. Ich hoffe, ich konnte jemandem in dieser Community helfen, da ich gerade erst angefangen habe, jmp jsl zu lernen.
Ex:
Datentabelle 1
Quelle
FARAH_DATA
FARAH_DATA
FARAH_DATA
FARAH_DATA
Datentabelle 2
Quelle
MIKE_DATA
MIKE_DATA
MIKE_DATA
So soll jede Datentabelle aussehen;
Datentabelle 1
Quelle
FARAH
FARAH
FARAH
FARAH
Datentabelle 2
Quelle
MIKE
MIKE
MIKE
Ich habe mein JSL wie unten angehängt
dtList = {};
For( i = 1, i <= N Table(), i++,
tempdt = data table(i)<<GET name=""></GET>Viele Möglichkeiten, damit umzugehen. Einige Beispiele zum Löschen von _DATA aus String
Names Default To Here(1);<BR /><BR />str = "FARAH_DATA";
//Word
Show(Word(1, str, "_"));
//Contains and left/substr
Show(Substr(str, 1, Contains(str, "_", -1) - 1));
Show(Left(str, Contains(str, "_", -1) - 1));
//Substitute
Show(Substitute(str, "_DATA", ""));
//Regex
Show(Regex(str, "_DATA", "", GLOBALREPLACE));
Show(Regex(str, "^(.*?)(_DATA)", "\1"));
Verwendung mit Datentabellen:
Names Default To Here(1)
dt1 = New Table("Untitled",
Add Rows(4),
New Column("Source",
Character,
"Nominal",
Set Values({"FARAH_DATA", "FARAH_DATA", "FARAH_DATA", "FARAH_DATA"})
)
);
dt2 = New Table("Untitled 2",
Add Rows(3),
New Column("Source",
Character,
"Nominal",
Set Values({"MIKE_DATA", "MIKE_DATA", "MIKE_DATA"})
)
);
dt_list = {dt1, dt2};
//using contains with left
//JMP16, if previous use For-loop
For Each({cur_dt}, dt_list,
Column(cur_dt, "Source") << Set Each Value(Left(:Source, Contains(:Source, "_", -1) - 1));
);