Aide avec contient dans si sinonSalut,
J'ai écrit le morceau de code suivant qui vérifie si/non une liste contient un caractère et effectue certaines étapes en conséquence.
Pour une raison quelconque, le script ne vérifie pas la condition "if contains" et exécute toujours la partie else.Je pense que j'ai une erreur stupide ici.
Clear Symbols();
Delete Symbols();
clear globals();
dtNext = Open("C:\temp\output.csv","invisible");
Summarize(dtNext, testlist = By(:test));
show(testlist );
SAVEPATH = "C:\temp\";
If(contains(testlist ,"M"),
Macrodt=New Table("test_type",
New Column("test_type",
Character,
Nominal,
Set Values( {"Morning"})
),
invisible
);
, //else
Macrodt=New Table("test_type",
New Column("test_type",
Character,
Nominal,
Set Values( {"Evening"})
),
invisible
);
);
//Save macro file
Macrodt<<SAVE></SAVE>
Re : Aide avec contient dans si sinonJ'ai utilisé la fonction cocncatitems et cela a fonctionné.
Merci
Re : Aide avec contient dans si sinonComme @Jeff_Perkinson suggère, plus d'informations aideraient, mais je vais essayer de comprendre ce que je pense être une source de confusion pour vous. La fonction "Contient" peut être utilisée sur une liste OU une chaîne... si vous recherchez si un élément de la liste contient un caractère spécifique, votre instruction "Si" ne produira pas le résultat souhaité tel qu'il est écrit. Si telle est votre intention, vous pouvez entourer votre variable "testlist" avec la fonction Concat Items dans l'instruction "If", c'est-à-dire que Concat Items(testlist) correspond à une seule chaîne composée de tous les éléments de la liste assemblés. Désormais, la fonction Contient renverra une réponse positive lors de la recherche d'un caractère spécifique s'il existe dans la nouvelle chaîne.
J'espère que cela t'aides.
Re : Aide avec contient dans si sinonIl n'y a pas d'erreur évidente dans votre code. Nous aurons besoin de plus de détails pour aider à comprendre où se trouve la confusion.
Voici un exemple montrant que votre prototype est correct.
dts = {"$SAMPLE_DATA\Fitness.jmp", "$SAMPLE_DATA\Big Class.jmp"};
For( i = 1, i <= N Items( dts ), i++,
dtNext = Open( dts[i] );
Summarize( dtNext, testlist = By( :age ) );
Show( testlist );
If( Contains( testlist, "42" ),
Show( "testlist contains 42" );
, //else
Show( "testlist doesn't contain 42" )
);
);
Le journal:
/*:
testlist = {"38", "40", "42", "43", "44", "45", "47", "48", "49", "50", "51", "52", "54", "57"};
"testlist contains 42";
testlist = {"12", "13", "14", "15", "16", "17"};
"testlist doesn't contain 42";