j'ai écrit une petite "sub" qui permet d'afficher les caractères de
controles d'une chaine. si par exemple la chaine contient un "tab", la
routine affiche "^T". pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ? ou bien, je me prend la tête pour
quelquechose qui existe déja ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
kurtz le pirate wrote in message :
j'ai écrit une petite "sub" qui permet d'afficher les caractères de controles d'une chaine. si par exemple la chaine contient un "tab", la routine affiche "^T".
Usuellement, c'est ^I pour tab.
pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ?
Euh... Tu voudrais quel genre de moyen ?
kurtz le pirate wrote in message
<kurtzlepirate-611E22.15403102042006@nnrp14-1.proxad.net>:
j'ai écrit une petite "sub" qui permet d'afficher les caractères de
controles d'une chaine. si par exemple la chaine contient un "tab", la
routine affiche "^T".
j'ai écrit une petite "sub" qui permet d'afficher les caractères de controles d'une chaine. si par exemple la chaine contient un "tab", la routine affiche "^T".
Usuellement, c'est ^I pour tab.
pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ?
Euh... Tu voudrais quel genre de moyen ?
kurtz le pirate
In article <e0orj8$1o5g$, Nicolas George <nicolas$ wrote:
kurtz le pirate wrote in message :
j'ai écrit une petite "sub" qui permet d'afficher les caractères de controles d'une chaine. si par exemple la chaine contient un "tab", la routine affiche "^T".
Usuellement, c'est ^I pour tab.
oooosp ! oui, oui, ^I
pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ?
Euh... Tu voudrais quel genre de moyen ?
un truc du "genre" : print "blabla printCtrl($myString)";
-- klp
In article <e0orj8$1o5g$2@biggoron.nerim.net>,
Nicolas George <nicolas$george@salle-s.org> wrote:
kurtz le pirate wrote in message
<kurtzlepirate-611E22.15403102042006@nnrp14-1.proxad.net>:
j'ai écrit une petite "sub" qui permet d'afficher les caractères de
controles d'une chaine. si par exemple la chaine contient un "tab", la
routine affiche "^T".
Usuellement, c'est ^I pour tab.
oooosp ! oui, oui, ^I
pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ?
Euh... Tu voudrais quel genre de moyen ?
un truc du "genre" : print "blabla printCtrl($myString)";
In article <e0orj8$1o5g$, Nicolas George <nicolas$ wrote:
kurtz le pirate wrote in message :
j'ai écrit une petite "sub" qui permet d'afficher les caractères de controles d'une chaine. si par exemple la chaine contient un "tab", la routine affiche "^T".
Usuellement, c'est ^I pour tab.
oooosp ! oui, oui, ^I
pouur m'en servir, je suis obligé d'ecrire :
printf "xxx xxx %s xxx",printCtrl($myString);
existe-il un autre moyen ?
Euh... Tu voudrais quel genre de moyen ?
un truc du "genre" : print "blabla printCtrl($myString)";
-- klp
Jacques Caron
Salut,
On Sun, 02 Apr 2006 18:48:25 +0200, kurtz le pirate wrote:
un truc du "genre" : print "blabla printCtrl($myString)";
En fait, ce que tu fais peut probablement être résumé en une seule regex, du genre:
$chaine =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
arggggg.... non, moi j'ai fais cette horreur : sub printCtrl { my $thisString=shift; if ($thisString=~/p{IsCntrl}/) { my $myString=""; for(my $i=0; $i<length($thisString); $i++) { my $myChar = ord(substr($thisString,$i,1)); if ($myChar<32) { $myString = $myString."^".chr($myChar+64); } else { $myString=$myString.chr($myChar); } } return $myString; } else { return $thisString; } }
... mais je vais corriger ça tout de suite :)
Celle-là ne marche que pour les caractères affichables sous la forme ^lettre, mais on peut généraliser:
$chaine =~ s/([^ -x7e])/printCtrl($1)/eg;
Il y a tout un tas d'autres façons de l'écrire, probablement... TMTOWTDI
Jacques.
MERCI !
-- klp
kurtz le pirate
In article , "Jacques Caron" wrote:
En fait, ce que tu fais peut probablement être résumé en une seule regex, du genre:
$chaine =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
c'est encore moi :(
avec ma fonction, j'obtiens des trucs du genre : /Users/admin/Datas/XPress/Icon^M
qui est conforme à ce que j'attends.
avec ta regexp utilisee comme a : 104 : sub printCtrl { 105 : my $thisString=shift; 106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg; 107 : return $thisString; 108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la réalité et en plus, il y a des erreurs qui remontent pendant l'execution du script : Argument "r" isn't numeric in addition (+) at findSame.pl line 106.
l'utilisation de la fonction printCtrl se fait comme là :
désolé mais je ne comprends pas ou/pourquoi ça coince ! j'ai ré-ouvert le 'camel book' pour bien comprendre le 's///eg' mais je ne vois vraiment pas.
c'est pénible les débutants non ?
-- klp
In article <op.s7ff4ru4w8m2cx@news.free.fr>,
"Jacques Caron" <jc@oxado.com> wrote:
En fait, ce que tu fais peut probablement être résumé en une seule regex,
du genre:
$chaine =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
c'est encore moi :(
avec ma fonction, j'obtiens des trucs du genre :
/Users/admin/Datas/XPress/Icon^M
qui est conforme à ce que j'attends.
avec ta regexp utilisee comme a :
104 : sub printCtrl {
105 : my $thisString=shift;
106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
107 : return $thisString;
108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la
réalité et en plus, il y a des erreurs qui remontent pendant l'execution
du script :
Argument "r" isn't numeric in addition (+) at findSame.pl line 106.
l'utilisation de la fonction printCtrl se fait comme là :
En fait, ce que tu fais peut probablement être résumé en une seule regex, du genre:
$chaine =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
c'est encore moi :(
avec ma fonction, j'obtiens des trucs du genre : /Users/admin/Datas/XPress/Icon^M
qui est conforme à ce que j'attends.
avec ta regexp utilisee comme a : 104 : sub printCtrl { 105 : my $thisString=shift; 106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg; 107 : return $thisString; 108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la réalité et en plus, il y a des erreurs qui remontent pendant l'execution du script : Argument "r" isn't numeric in addition (+) at findSame.pl line 106.
l'utilisation de la fonction printCtrl se fait comme là :
désolé mais je ne comprends pas ou/pourquoi ça coince ! j'ai ré-ouvert le 'camel book' pour bien comprendre le 's///eg' mais je ne vois vraiment pas.
c'est pénible les débutants non ?
-- klp
Jacques Caron
Salut,
On Tue, 04 Apr 2006 18:26:47 +0200, kurtz le pirate wrote:
avec ta regexp utilisee comme a : 104 : sub printCtrl { 105 : my $thisString=shift; 106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg; 107 : return $thisString; 108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la réalité et en plus, il y a des erreurs qui remontent pendant l'execution du script : Argument "r" isn't numeric in addition (+) at findSame.pl line 106.
On Tue, 04 Apr 2006 18:26:47 +0200, kurtz le pirate
<kurtzlepirate@yahoo.fr> wrote:
avec ta regexp utilisee comme a :
104 : sub printCtrl {
105 : my $thisString=shift;
106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg;
107 : return $thisString;
108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la
réalité et en plus, il y a des erreurs qui remontent pendant l'execution
du script :
Argument "r" isn't numeric in addition (+) at findSame.pl line 106.
On Tue, 04 Apr 2006 18:26:47 +0200, kurtz le pirate wrote:
avec ta regexp utilisee comme a : 104 : sub printCtrl { 105 : my $thisString=shift; 106 : $thisString =~ s/([ 01- 32])/sprintf("^%c",$1+64)/eg; 107 : return $thisString; 108 : }
j'obtiens : /Users/admin/Datas/Word/Icon^@, qui ne correspond pas la réalité et en plus, il y a des erreurs qui remontent pendant l'execution du script : Argument "r" isn't numeric in addition (+) at findSame.pl line 106.