La
format-time-string
fonction prend une chaîne et remplace un ensemble de constructions spéciales dans cette chaîne (caractères précédés de %
) par un texte spécifique.
Je voudrais implémenter une fonctionnalité comme ça dans une fonction à moi:
- J'ai un alist entre les caractères et les symboles tels que :
'((?n . name) (?r . reputation))
. - La fonction doit prendre une chaîne comme
"My name is %n, and my rep is %r"
. - Il doit remplacer
%n
et%r
par la valeur des variablesname
etreputation
, et retourner le résultat. - Il devrait se comporter
%%
commeformat-time-string
(remplacez-le par%
).
Quelle est la manière la plus simple d'implémenter cette fonction?
Existe-t-il une bibliothèque ou une fonction qui facilitera cela? Une manipulation %%
correcte est importante.
Comme elisp a des fonctionnalités plutôt primitives pour traiter les chaînes, il est préférable de mettre votre chaîne de formatage dans un tampon et de répéter cela:
Une subtilité mineure - cela ne se casse pas quand il y a un seul
%
à la fin de la chaîne carchar-after
retournenil
à la fin du tampon.la source
Voici le code que j'utilise pour un format-time-string pour un faux calendrier:
la source