Essayez d'utiliser "\!N" comme séparateur pour tmp au lieu de " ".
Très probablement, le séparateur est une sorte de changement de ligne et non " " lorsque vous copiez-collez des valeurs à partir d'Excel. Je ne sais pas d'où vient votre image de variable (débogueur JSL ?), mais peut-être qu'elle ne peut pas afficher correctement les changements de ligne ?
Modifier : également en fonction de votre application, il peut parfois être préférable de remplacer tous les espaces blancs (ou simplement différents types de changements de ligne) par un caractère (j'utilise généralement ¤) en utilisant Regex, puis en utilisant Words pour diviser ce caractère. Je le fais habituellement, car les valeurs copiées-collées peuvent avoir toutes sortes de caractères d'espacement étranges et le simple fait de diviser sur \!N ne suffira pas.
Names Default To Here(1);
str = "asd b
\!na
\!rb";
Print(str);
new_separator = "¤";
l = Words(Regex(str, "\s", new_separator, GLOBALREPLACE), new_separator);
Show(l);
Merci pour l'explication aimable et bon moyen pour le débogage!
C'est la première fois que j'apprends l'expression régulière (Regex) en JSL.
Merci beaucoup!
Pour info, j'ai capturé l'outil de débogage pour l'instantané comme vous l'avez mentionné.
Chers tous,
Permettez-moi de poser une question concernant la fonction Text Edit Box ()
But
Copiez et collez les valeurs Excel (certains numéros de série) dans la zone d'édition de texte et triez la zone du panneau (numéro de série inséré)

J'ai créé un script faisant référence à des exemples dans la communauté JMP comme ci-dessous.
Le script doit cependant être mis à jour.
Delete Symbols();
Names Default To Here( 1 );
//Define Seperate function
SeparateString = Function( {TheString},
TheList = Words(TheString," ");
Return( TheList );
);
dt = Current Data Table();
Summarize( sn = by( :SN ) );
serial_total = sn;
//dt2 = New table("tmp", New Column("serialnumber",character, set values(sn)));
New Window("Debug",
H List Box(
V List Box(TEXT BOX("Copy and Paste SerialNumber list", <<SET font="" style=""></SET>
Au fait, lorsque je saisis les valeurs ci-dessous dans la zone d'édition de texte, il semble que la chaîne extraite ait un délimiteur " ", mais elle ne peut pas être divisée comme je le pensais.
J'ai ajouté un script simple pour vérifier s'il est bien divisé, comme vous pouvez le voir ci-dessous, "str" peut être divisé, mais pas "tmp".
Lorsque je mets les valeurs dans Excel et que je les compare avec la fonction Exact, les deux valeurs sont identiques, mais il semble que JSL a classé deux variables comme une variable différente.
tmp =Eval(item_search_teb < chaîne = "MD5 MD6 MD7 MD8 " ;
split_str = Mots(str," ");
split_tmp = Mots(tmp," ");

Pourriez-vous trouver quelle est la différence et me donner la solution?
Merci beaucoup!