Conversión de texto a número independiente del idioma de una forma "Columna NN" -> "NN"Uno de mis usuarios se quejó de que mi complemento no funcionaba. Cortaba todos los datos de una de las variables por debajo de 100.
Al solucionar el problema, descubrí que se debe a la forma en que convierto la "Columna NN" al número "NN". El archivo CSV de origen no tiene nombres de columna, por lo que cuando lo importo, JMP asigna nombres predeterminados. Mi usuario tiene el idioma establecido en japonés, por lo que importa archivos CSV que nombran columnas como "列 NN", lo que rompe mi fórmula para números inferiores a 100 (solo estaba tomando los tres símbolos correctos, por lo que los números inferiores a 100 todavía aparecían como números) .
Puedo solucionarlo fácilmente en este caso, pero digamos que quiero que sea 100% independiente del idioma, y no conozco todos los formatos locales en los que podría importar el archivo CSV sin encabezado. ¿Cómo convertiría algo como " CCCNNCCC "a" NN "- donde" CCC "- número arbitrario de caracteres y" NN "número arbitrario de números? ¿Alguna magia de RegExp?
Tabla de datosScriptingRe: conversión de texto a número independiente del idioma de una forma "Columna NN" -> "NN"Aquí hay una función simple que hará el truco
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 );