Espace multiples dans une variable et/ou $1-

Résolu
cs_murony Messages postés 6 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2006 - 31 janv. 2006 à 19:15
cs_murony Messages postés 6 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2006 - 1 févr. 2006 à 15:32
Bonjour,



Voilà j'ai un :

on *:TEXT:*:?:{ }

J'analyse donc le $1- et je le parse avec une expression régulière,
mais avant ça, je remplace tous les caractères suceptibles de me poser
problèmes ( /\^$*+. etc...) ET les espaces que je convertis en " \s "
mais voilà si quelqu'un m'envoie un message du style "<nick> Salut"


avec plusieurs espaces devant, $1- me donne "Salut" et donc je ne
trouve aucune occurences avec ma regex, par contre si je set moi même
une variable en tapant "/set %var Un te st he hé"

ma variable %var a bien la valeur "Un te st he hé"

mais j'entre ça dans un remote alors les espaces sont supprimés.

Le problème semble donc venir de $1- existe t il un identifieur qui me
permettrait de remédier à celà ? en conservant tous les espaces ?

Quelqu'un aurait il une suggestion à faire ?

J'espère avoir été clair.



Merci d'avance

2 réponses

cs_murony Messages postés 6 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 février 2006
1 févr. 2006 à 15:32
merci de ta réponse, mais je ne pas remplaçais un charactère qui n'existe pas !
Puis que je récupère la valeur de mon ON TEXT dans $1- et il semblerait que la compression s'effectue à ce niveau là.
De plus le caractère ascii 160 n'est PAS un espace, il n'est pas reconnu par toutes les polices de caratères comme un espace, ce qui pourrait poser des problèmes de compatibilités.
Cela dit j'ai trouvé la solution, j'utilise ON TEXT avec à la place d'un wildcard * une expression régulière, puis je récupère l'occurence trouvé par $regml(1) plutot que par $1- et je conserve donc mes espaces, je l'ai converti ensuite en \s ce qui correspond à un espace dans la règle POSIX
3
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
1 févr. 2006 à 00:42
mIRC "compresse" les espaces consécutifs en un seul je crois.. pour éviter ça tu peux faire un $replace() sur les $chr(32) pour les transformer en $chr(160) (qui fait un espace aussi mais qui n'est pas compressé par mIRC qd yen a plusieurs)
0
Rejoignez-nous