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, il 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 "DONNEES", . J'ai essayé d'accomplir l'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 que je pourrais obtenir de l'aide de quelqu'un dans cette communauté puisque je viens de commencer à apprendre jmp jsl.
Ex:
Tableau de données 1
La source
FARAH_DATA
FARAH_DATA
FARAH_DONNÉES
FARAH_DONNÉES
Tableau de données 2
La source
MIKE_DATA
MIKE_DATA
MIKE_DATA
C'est ce que je veux que chaque table de données ressemble ;
Tableau de données 1
La source
FARAH
FARAH
FARAH
FARAH
Tableau de données 2
La source
MIKE
MIKE
MIKE
J'ai attaché 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 comment supprimer _DATA de la 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));
);