Disons que j'ai un nom de fichier que j'analyse en parties séparées comme suit :
nameWords = Words(name, "_")
Disons que je veux créer un nom court à partir des cinq premiers mots du nom d'origine :
shortName = Concat Items( nameWords[{1, 2, 3, 4, 5}], "_" );Tout fonctionne bien alors que je reçois des noms dans le format que j'attends, c'est-à-dire plus de cinq mots dans le nom.
Mais dès que j'obtiens un nom comme "aaa_bbb_ccc" (assez inattendu, mais totalement réel), j'obtiens une erreur lors de l'indexation dans ma liste.
Question : Comment puis-je indexer non pas 5, mais le moins de 5 et les N éléments de la liste ? Plutôt que d'écrire une instruction IF pour déterminer laquelle est la moins élevée ?
Vous pouvez également utiliser Gauche()
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), "_"));
Voilà:
shortName = Concat Items(nameWords[1::Min(NItems(nameWords), 5)])