Discussion modèle:ar-chr

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Ajouter un sujet
Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

Appel du modèle[modifier le wikicode]

  • {{{1|}}}= string, la chaîne dont il faut extraire un caractère ;
  • {{{2|}}} = pos, le rang du caractère à extraire.
  • {{{|safesubst:}}} est indéfinie et sera remplacée par la valeur par défaut "safesubst:"

Wikitext résultat du modèle[modifier le wikicode]

Après substitution des variables formelles par leur valeur dans le texte du modèle, celui-ci devient (au pretty-print près) :

{{safesubst:iflenge |string|pos
|{{safesubst:ar-chr/list
|{{safesubst:padleft:|{{safesubst:#expr:pos+1}}|"string"}}
|{{safesubst:padleft:|pos|"string"}}
}}
}}

Structure du modèle[modifier le wikicode]

La fonction safesubst: a donc été insérée à chaque appel de modèle, c'est-à-dire que le modèle exécute fondamentalement le schéma suivant :

{{iflenge |string|pos
|{{ar-chr/list
|{{padleft:|{{#expr:pos+1}}|"string"}}
|{{padleft:|pos|"string"}}
}}
}}
  • {{iflenge}} est un test sur la longueur d'une chaîne de caractère = IF LENgth Greater than or Equal to. La chaîne doit être plus longue que la position recherchée, sinon le résultat est vide. Sa spécificité est de ne pas supprimer d'éventuels blancs ou sauts de lignes préfixes ou suffixes, qui font a priori partie de la chaîne.
  • {{padleft:| est une "parser function" (voir dans la section mw:Help:Magic words#Formatting) normalement utiliséer pour compléter à gauche une chaîne de départ en ajoutant un motif répétitif jusqu'à atteindre une longueur donnée ; sa particularité est que quand la longueur demandée est inférieure à la longueur du motif, ce dernier est tronqué à droite à la bonne longueur (voir meta:Help:String_functions#Padleft). Ici, la fonction est appelée avec une chaîne de départ nulle et un motif de longueur supérieur à la longueur de la chaîne, donc le résultat est une troncation à droite, de la longueur correspondante : pos et pos+1.
  • Le modèle {{ar-chr/list}} est donc appelé avec deux paramètres, le premier correspondant à la chaîne tronquée au caractère pos+1, et le second plus court d'un caractère. Noter cependant que le paramètre transmis est "string" entre guillemets, donc deux caractères de garde ont été rajoutés, devant et derrière la chaîne étudiée. La différence entre les deux chaînes transmise, donc le dernier caractère de la première chaîne, est donc bien le caractère recherché, à la position n de la chaîne d'origine.
  • Le modèle {{ar-chr/list}} fonctionne fondamentalement en cherchant quel caractère peut être rajouté à la chaîne2 pour obtenir la chaîne1, et renvoie ce caractère du moment qu'il figure dans la liste des caractères testés.