cs_TropNul
Messages postés
340
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
22 octobre 2009
5 janv. 2007 à 22:35
Grâce à toi Wims, j'ai tout repensé et j'ai trouvé !
\o/
Je ne sais pas s'il est plus lent ou plus rapide que ton alias Panthouffle, mais il fonctionne ^^.
Je ne vais pas réexpliqué les regex mais je vais quand même commenté.
ALIAS BUB {
; Déclaration des variables VAR %V 0 ,%W , %X , %Y , %Z , %R /(.)(.)/g , %S = /(.)/g
; Boucle sur chaque mot
WHILE $regex(GtWrd,$1-,/([^[:space:]]+)/i) {
; Récupération du mot
%W = $regml(GtWrd,1)
; Si le mot est de taille impair IF ($calc($len(%W) % 2) 1) { %X $iif((%V == 0),$regsub(%W,%S,$+($chr(2),\1,$chr(2),$chr(2)),%Y),$regsub(%W,%S,$+(\1,$chr(2),\2,$chr(2)),%Y)) }
; Cas ou le mot est de taille paire ELSE { %X $iif((%V 0),$regsub(%W,%R,$+($chr(2),\1,$chr(2),\2),%Y),$regsub(%W,%R,$+(\1,$chr(2),\2,$chr(2)),%Y)) }
%Z = %Z $+ $chr(32) $+ %Y
; Je tokenize sur $2- pour ne pas reboucler à chaque fois sur la phrase entière mais sur (LaPhrase - lePremierMot)
TOKENIZE 32 $2-
}
RETURN %Z
}
/*
La variable %V est utilisée dans tout l'alias pour vérifier le 'sens' de la substitution. En effet, là ou je bloquais, était le cas ou ça tombe sur un mot de taille impair. il est évident que la dernière lettre sera en gras, et ainsi pour les prochains mots, faudra faire en sorte de mettre du NonGras puis du Gras au lieu de mettre du Gras puis du NonGras.
*/
Voilou :)
Ce fût dur mais bon. Il doit surement exister un moyen plus rapide de faire cela toujours avec les regex.
Vous avez maintenant le choix. (faites des bench par exemple, chui creuvé X_x, fini de réfléchir pour aujourd'hui)
:o)
TropNul