Digamos que tengo un nombre de archivo que analizo en partes separadas así:
nameWords = Words(name, "_")
Digamos que quiero hacer un nombre corto con las primeras cinco palabras del nombre original:
shortName = Concat Items( nameWords[{1, 2, 3, 4, 5}], "_" );Todo funciona bien mientras obtengo nombres en el formato que espero, es decir, más de cinco palabras en el nombre.
Pero tan pronto como obtengo un nombre como "aaa_bbb_ccc" (bastante inesperado, pero totalmente real), aparece un error al indexar en mi lista.
Pregunta: ¿Cómo indexo no 5, sino el menor de 5 y los N elementos de la lista? ¿En lugar de escribir una instrucción IF para averiguar cuál es menor?
También podrías usar Izquierda()
Names Default To Here(1);
a = "1_2_3_4_5_6_7_8";
b = "1_2_3";
Show(Concat Items(Left(Words(a, "_"), 5), "_"));
Show(Concat Items(Left(Words(b, "_"), 5), "_"));
Ahí tienes:
shortName = Concat Items(nameWords[1::Min(NItems(nameWords), 5)])