Conversion de texte indépendante de la langue en nombre d'une forme "Colonne NN" -> "NN"Un de mes utilisateurs s'est plaint que mon complément ne fonctionnait pas. Il coupait toutes les données pour l'une des variables inférieures à 100.
Lors du dépannage, j'ai trouvé que cela était dû à la façon dont je convertis "Colonne NN" en juste le numéro "NN". Le fichier CSV source n'a pas de nom de colonne, donc lorsque je l'importe, JMP attribue des noms par défaut. Mon utilisateur a défini la langue sur le japonais, il importe donc les fichiers CSV en nommant les colonnes comme "列 NN", ce qui rompt ma formule pour les nombres inférieurs à 100 (je prenais juste les trois bons symboles, donc les nombres inférieurs à 100 étaient toujours des nombres) .
Je peux facilement résoudre ce cas, mais disons que je veux le rendre 100% indépendant de la langue, et je ne connais pas tous les formats locaux dans lesquels in pourrait importer le fichier CSV sans en-tête - comment convertirais-je quelque chose comme " CCCNNCCC "à" NN "- où" CCC "- nombre arbitraire de caractères et" NN "nombre arbitraire de nombres? Un peu de magie RegExp?
Tableau de donnéesScriptingRe: Conversion de texte indépendant de la langue en nombre d'une forme "Colonne NN" -> "NN"Voici une fonction simple qui fera l'affaire
getNumber = Function( {input},
{defaultlocal},
numStart = Length( Word( 2, z, "0123456789" ) );
number = "";
While( Is Missing( Num( Substr( z, numStart, 1 ) ) ) == 0,
number = number || Substr( z, numStart, 1 );
numStart++;
);
number = Num( number );
);
value = getNumber( "wd*()578pqxkkl" );
Show( value );