Hallo alle,
Ich habe verschiedene Datentabellen, die ich aus anderen Tabellen erstellt habe. In jeder Datentabelle sind Zeichenfolgen variabler Länge im Format „Zeichen“ im gleichen Spaltennamen enthalten. 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, dass mir jemand in dieser Community helfen kann, 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
Ich möchte, dass jede Datentabelle so aussieht.
Datentabelle 1
Quelle
FARAH
FARAH
FARAH
FARAH
Datentabelle 2
Quelle
MIKE
MIKE
MIKE
Ich habe meine JSL wie folgt angehängt
dtList = {};
For( i = 1, i <= N Table(), i++,
tempdt = data table(i)<<GET name=""></GET>Es gibt viele Möglichkeiten, damit umzugehen. Einige Beispiele zum Löschen von _DATA aus einem 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));
);