Bonjour à tous,
J'ai différentes tables de données que j'ai créées à partir d'autres tables. Dans chaque table de données, elle contient des chaînes de longueur variable au format Caractère dans le même nom de colonne. J'ai ajouté quelques exemples ci-dessous. J'essaie de supprimer les 4 derniers caractères de la chaîne de la colonne et de conserver tout le reste. Les 4 derniers caractères sont toujours "DATA", . J'ai essayé d'accomplir une instruction if pour lier différentes tables de données et en utilisant Left() et Contains() mais je pense que la façon dont je l'ai écrite est fausse. J'espère pouvoir obtenir de l'aide dans cette communauté puisque je viens de commencer à apprendre jmp jsl.
Ex:
Tableau de données 1
Source
FARAH_DATA
FARAH_DATA
FARAH_DATA
FARAH_DATA
Tableau de données 2
Source
MIKE_DATA
MIKE_DATA
MIKE_DATA
C'est à cela que je veux que chaque tableau de données ressemble ;
Tableau de données 1
Source
FARAH
FARAH
FARAH
FARAH
Tableau de données 2
Source
MIKE
MIKE
MIKE
J'ai joint mon jsl comme ci-dessous
dtList = {};
For( i = 1, i <= N Table(), i++,
tempdt = data table(i)<<GET name=""></GET>De nombreuses façons de gérer cela. Quelques exemples pour supprimer _DATA d'une chaîne
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"));
Utilisation avec des tables de données :
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));
);