Script JSL pour vérifier si une seule valeur de cellule se trouve dans une listeÉtant donné une table de données avec une colonne de valeurs limitées (voir les exemples ci-dessous), je voudrais écrire un script qui examine la première cellule et vérifie si elle se trouve dans une liste de valeurs. Le but serait d'utiliser n'importe quelle première valeur comme condition pour une instruction IF qui pointerait ensuite vers un certain ensemble de tâches.
Quelqu'un a une idée de comment faire cela?
merci
par exemple
ou
Re : Script JSL pour vérifier si une seule valeur de cellule est dans une listeMerci @pmroz et @txnelson pour l'aide au script. Pour être plus précis, ce que je recherche, c'est d'utiliser la vérification de la présence ou non de la valeur de la première cellule dans la liste comme condition d'une instruction if qui entraînera d'autres actions. Je pense que vos deux scripts remplissent un autre tableau mais ils ne sont pas un T/F strict. Je vais essayer de les utiliser et je vous tiendrai au courant de ce qui se passe.
Re : Script JSL pour vérifier si une seule valeur de cellule est dans une listeCela pourrait être utile :
dt = New Table( "test", Add Rows( 5 ),
New Column( "CAT", Character, "Nominal",
Set Values( {"A", "B", "C", "D", "E"} ) ),
New Column( "time", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5] ) )
);
look_for_list = {"B", "D"};
found_rows = dt << get rows where(contains(look_for_list, as column(dt, "CAT")));
print(found_rows);
[2, 4]
Re : Script JSL pour vérifier si une seule valeur de cellule est dans une listeJe ne sais pas exactement ce que vous demandez, cependant, voici un script qui pourrait vous orienter dans la bonne direction
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
theList = {59, 66};
For( i = 1, i <= N Rows( dt ), i++,
If( N Rows( Loc( theList, :height[i] ) ) > 0,
Show( i )
)
);Re : Script JSL pour vérifier si une seule valeur de cellule se trouve dans une listeJe suis tombé sur ce fil de discussion à la recherche d'une solution similaire pour fermer les tables de données ouvertes en permanence lors du test de code. J'ai utilisé votre code simple ci-dessus. Je me suis dit que je le publierais au cas où cela pourrait être utile à quiconque tomberait sur ce fil de discussion :
// list of table names that I want to make sure are closed before running the script
tname = { "TABLE1", "TABLE2", "TABLE3", "TABLE4" };
// loop to see if open tables match the name in the list above, then close them
// need to restart the i counter to i = 0 because it seems closing a table changes the 'i' number associated with the table
For( i = 1, i <= N Table(), i++,
If( N Rows (Loc( tname, Data Table(i) << Get Name ) ) > 0,
Close(Data Table(i), no save);
i = 0;
)
);