Bonjour,
j'ai un texte dans lequel j'ai des "- "que je veux isoler.
Mais je n'arrive pas à faire reconnaitre l'espace :
/-/ marche mais me renvoie des choses en trop
/- / et /-\s/ ne renvoient rien
Une idée ?
À (at) Sun, 03 Dec 2006 23:22:40 +0100, Bibi69 écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler. Mais je n'arrive pas à faire reconnaitre l'espace : /-/ marche mais me renvoie des choses en trop /- / et /-s/ ne renvoient rien Une idée ?
L'espace n'est peut-être pas vraiment un espace ? L'erreur est peut-être ailleurs ? ...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Sun, 03 Dec 2006 23:22:40 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler.
Mais je n'arrive pas à faire reconnaitre l'espace :
/-/ marche mais me renvoie des choses en trop
/- / et /-s/ ne renvoient rien
Une idée ?
L'espace n'est peut-être pas vraiment un espace ?
L'erreur est peut-être ailleurs ?
...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Sun, 03 Dec 2006 23:22:40 +0100, Bibi69 écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler. Mais je n'arrive pas à faire reconnaitre l'espace : /-/ marche mais me renvoie des choses en trop /- / et /-s/ ne renvoient rien Une idée ?
L'espace n'est peut-être pas vraiment un espace ? L'erreur est peut-être ailleurs ? ...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Bibi69
À (at) Sun, 03 Dec 2006 23:22:40 +0100, Bibi69 écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler. Mais je n'arrive pas à faire reconnaitre l'espace : /-/ marche mais me renvoie des choses en trop /- / et /-s/ ne renvoient rien Une idée ?
L'espace n'est peut-être pas vraiment un espace ? L'erreur est peut-être ailleurs ? ...
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres. Mon texte est en latin1, perl ne le reconnait pas ? Comment je peux convertir à un autre encodage sans perdre les accents ?
À (at) Sun, 03 Dec 2006 23:22:40 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler.
Mais je n'arrive pas à faire reconnaitre l'espace :
/-/ marche mais me renvoie des choses en trop
/- / et /-s/ ne renvoient rien
Une idée ?
L'espace n'est peut-être pas vraiment un espace ?
L'erreur est peut-être ailleurs ?
...
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres. Mon texte est en latin1, perl ne le reconnait pas ?
Comment je peux convertir à un autre encodage sans perdre les accents ?
À (at) Sun, 03 Dec 2006 23:22:40 +0100, Bibi69 écrivait (wrote):
j'ai un texte dans lequel j'ai des "- "que je veux isoler. Mais je n'arrive pas à faire reconnaitre l'espace : /-/ marche mais me renvoie des choses en trop /- / et /-s/ ne renvoient rien Une idée ?
L'espace n'est peut-être pas vraiment un espace ? L'erreur est peut-être ailleurs ? ...
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres. Mon texte est en latin1, perl ne le reconnait pas ? Comment je peux convertir à un autre encodage sans perdre les accents ?
Nicolas George
Bibi69 wrote in message <4573eb1a$0$21933$:
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres. Mon texte est en latin1, perl ne le reconnait pas ? Comment je peux convertir à un autre encodage sans perdre les accents ?
Si tu lis depuis un fichier, « binmode $fh, ":encoding(iso-8859-1)" », si tu as déjà la chaîne par un autre moyen, Encode::decode.
Bibi69 wrote in message <4573eb1a$0$21933$426a74cc@news.free.fr>:
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres. Mon texte est en latin1, perl ne le reconnait pas ?
Comment je peux convertir à un autre encodage sans perdre les accents ?
Si tu lis depuis un fichier, « binmode $fh, ":encoding(iso-8859-1)" », si tu
as déjà la chaîne par un autre moyen, Encode::decode.
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres. Mon texte est en latin1, perl ne le reconnait pas ? Comment je peux convertir à un autre encodage sans perdre les accents ?
Si tu lis depuis un fichier, « binmode $fh, ":encoding(iso-8859-1)" », si tu as déjà la chaîne par un autre moyen, Encode::decode.
Paul Gaborit
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur, tous les textes sont encodés d'une manière ou d'une autre. S'il y a problème, c'est parce qu'on n'utilise pas le bon encodage ou parce qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
Comment je peux convertir à un autre encodage sans perdre les accents ?
En utilisant les modules d'encodage : Encode.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 10:32:10 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur,
tous les textes sont encodés d'une manière ou d'une autre. S'il y a
problème, c'est parce qu'on n'utilise pas le bon encodage ou parce
qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
Comment je peux convertir à un autre encodage sans perdre les accents ?
En utilisant les modules d'encodage : Encode.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur, tous les textes sont encodés d'une manière ou d'une autre. S'il y a problème, c'est parce qu'on n'utilise pas le bon encodage ou parce qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
Comment je peux convertir à un autre encodage sans perdre les accents ?
En utilisant les modules d'encodage : Encode.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Bibi69
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur, tous les textes sont encodés d'une manière ou d'une autre. S'il y a problème, c'est parce qu'on n'utilise pas le bon encodage ou parce qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
C'est à dire ?
À (at) Mon, 04 Dec 2006 10:32:10 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage
des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur,
tous les textes sont encodés d'une manière ou d'une autre. S'il y a
problème, c'est parce qu'on n'utilise pas le bon encodage ou parce
qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote):
D'apres des tests que je viens de faire, il y aurait un pb d'encodage des caracteres.
Il n'y a *jamais* de pb d'encodage des caractères. Dans un ordinateur, tous les textes sont encodés d'une manière ou d'une autre. S'il y a problème, c'est parce qu'on n'utilise pas le bon encodage ou parce qu'une conversion entre deux encodages différents échoue.
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
C'est à dire ?
Paul Gaborit
À (at) Mon, 04 Dec 2006 15:59:32 +0100, Bibi69 écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote): [...]
Mon texte est en latin1, perl ne le reconnait pas ? Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous dire si vous lui demandez correctement.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 15:59:32 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
[...]
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous
dire si vous lui demandez correctement.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 15:59:32 +0100, Bibi69 écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote): [...]
Mon texte est en latin1, perl ne le reconnait pas ? Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous dire si vous lui demandez correctement.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Bibi69
À (at) Mon, 04 Dec 2006 15:59:32 +0100, Bibi69 écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote): [...]
Mon texte est en latin1, perl ne le reconnait pas ? Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous dire si vous lui demandez correctement.
Voila ce que j'écris :
open in, "< $ARGV[0]" or die; my $l0 = <in>; while ($l0) { if ($l0 =~ /-s/){ print $l0; } else{ } $l0=<in>; } close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./ ne me donnent rien. Quoi que je mette derrière -, ça ne donne rien. Est-ce que - ne serait pas un opérateur ?
À (at) Mon, 04 Dec 2006 15:59:32 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
[...]
Mon texte est en latin1, perl ne le reconnait pas ?
Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous
dire si vous lui demandez correctement.
Voila ce que j'écris :
open in, "< $ARGV[0]" or die;
my $l0 = <in>;
while ($l0)
{
if ($l0 =~ /-s/){
print $l0;
}
else{
}
$l0=<in>;
}
close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./ ne
me donnent rien. Quoi que je mette derrière -, ça ne donne rien. Est-ce
que - ne serait pas un opérateur ?
À (at) Mon, 04 Dec 2006 15:59:32 +0100, Bibi69 écrivait (wrote):
À (at) Mon, 04 Dec 2006 10:32:10 +0100, Bibi69 écrivait (wrote): [...]
Mon texte est en latin1, perl ne le reconnait pas ? Si. Il suffit de lui demander correctement.
C'est à dire ?
Dites-nous comment vous faites pour lui demander et nous pourrons vous dire si vous lui demandez correctement.
Voila ce que j'écris :
open in, "< $ARGV[0]" or die; my $l0 = <in>; while ($l0) { if ($l0 =~ /-s/){ print $l0; } else{ } $l0=<in>; } close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./ ne me donnent rien. Quoi que je mette derrière -, ça ne donne rien. Est-ce que - ne serait pas un opérateur ?
Paul Gaborit
À (at) Mon, 04 Dec 2006 16:16:52 +0100, Bibi69 écrivait (wrote):
Voila ce que j'écris :
open in, "< $ARGV[0]" or die;
Pour dire à Perl que le filehandle 'in' doit décoder de l'iso8859-1, vous devez passer per un appel à 'binmode' :
binmode(in, ":encoding(iso-8859-1)");
Remarque : par convention les noms des filehandles devraient être en majuscules. Ici 'IN' (comme STDOUT, STDIN, STDERR...). Ou alors, utilisez un scalaire :
open my $in, "<", $ARGV[0]" or die "Can't read '$ARGV[0]': $!n; binmode($in, ":encoding(iso-8859-1)"); my $l0 = <$in>; ...
my $l0 = <in>; while ($l0) { if ($l0 =~ /-s/){ print $l0; } else{ } $l0=<in>; } close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./ ne me donnent rien. Quoi que je mette derrière -, ça ne donne rien. Est-ce que - ne serait pas un opérateur ?
Le caractère '-' n'a rien de spécial dans une expression rationnelle sauf dans une classe de caractères ([...]) mais ce n'est pas le cas ici.
Pour l'espace et/ou le s, l'encodage et le contenu du fichier peuvent jouer. Mais dans le cas de m/-./, cela devrait reconnaître tous les textes contenant un '-' suivi d'un autre caractère. Et là, je vois mal l'encodage poser problème systématiquement...
Utilisez-vous 'use strict;' et 'use warnings;' ?
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 16:16:52 +0100,
Bibi69 <noreply@free.fr> écrivait (wrote):
Voila ce que j'écris :
open in, "< $ARGV[0]" or die;
Pour dire à Perl que le filehandle 'in' doit décoder de l'iso8859-1,
vous devez passer per un appel à 'binmode' :
binmode(in, ":encoding(iso-8859-1)");
Remarque : par convention les noms des filehandles devraient être en
majuscules. Ici 'IN' (comme STDOUT, STDIN, STDERR...). Ou alors,
utilisez un scalaire :
open my $in, "<", $ARGV[0]"
or die "Can't read '$ARGV[0]': $!n;
binmode($in, ":encoding(iso-8859-1)");
my $l0 = <$in>;
...
my $l0 = <in>;
while ($l0)
{
if ($l0 =~ /-s/){
print $l0;
}
else{
}
$l0=<in>;
}
close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./
ne me donnent rien. Quoi que je mette derrière -, ça ne donne
rien. Est-ce que - ne serait pas un opérateur ?
Le caractère '-' n'a rien de spécial dans une expression rationnelle
sauf dans une classe de caractères ([...]) mais ce n'est pas le cas
ici.
Pour l'espace et/ou le s, l'encodage et le contenu du fichier peuvent
jouer. Mais dans le cas de m/-./, cela devrait reconnaître tous les
textes contenant un '-' suivi d'un autre caractère. Et là, je vois mal
l'encodage poser problème systématiquement...
Utilisez-vous 'use strict;' et 'use warnings;' ?
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 04 Dec 2006 16:16:52 +0100, Bibi69 écrivait (wrote):
Voila ce que j'écris :
open in, "< $ARGV[0]" or die;
Pour dire à Perl que le filehandle 'in' doit décoder de l'iso8859-1, vous devez passer per un appel à 'binmode' :
binmode(in, ":encoding(iso-8859-1)");
Remarque : par convention les noms des filehandles devraient être en majuscules. Ici 'IN' (comme STDOUT, STDIN, STDERR...). Ou alors, utilisez un scalaire :
open my $in, "<", $ARGV[0]" or die "Can't read '$ARGV[0]': $!n; binmode($in, ":encoding(iso-8859-1)"); my $l0 = <$in>; ...
my $l0 = <in>; while ($l0) { if ($l0 =~ /-s/){ print $l0; } else{ } $l0=<in>; } close in;
Si je fais /-/ j'obtiens plein de trucs. Par contre /- /, /-s/ /-./ ne me donnent rien. Quoi que je mette derrière -, ça ne donne rien. Est-ce que - ne serait pas un opérateur ?
Le caractère '-' n'a rien de spécial dans une expression rationnelle sauf dans une classe de caractères ([...]) mais ce n'est pas le cas ici.
Pour l'espace et/ou le s, l'encodage et le contenu du fichier peuvent jouer. Mais dans le cas de m/-./, cela devrait reconnaître tous les textes contenant un '-' suivi d'un autre caractère. Et là, je vois mal l'encodage poser problème systématiquement...
Utilisez-vous 'use strict;' et 'use warnings;' ?
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Bibi69
Utilisez-vous 'use strict;' et 'use warnings;' ?
Non
Apparement, le probleme est que mon texte d'entrée est un fichier binaire et qu'il faut sans doute que je le convertisse en ascii mais je ne trouve pas comment je dois faire...
Utilisez-vous 'use strict;' et 'use warnings;' ?
Non
Apparement, le probleme est que mon texte d'entrée est un fichier
binaire et qu'il faut sans doute que je le convertisse en ascii mais je
ne trouve pas comment je dois faire...
Apparement, le probleme est que mon texte d'entrée est un fichier binaire et qu'il faut sans doute que je le convertisse en ascii mais je ne trouve pas comment je dois faire...
espie
In article , Paul Gaborit <Paul.Gaborit+ wrote:
Pour dire à Perl que le filehandle 'in' doit décoder de l'iso8859-1, vous devez passer per un appel à 'binmode' :
binmode(in, ":encoding(iso-8859-1)");
Tiens, question bete, entre toi et Nicolas, ca fait deux appels a binmode que je vois passer.
Y a-t-il une difference entre open(my $f, '<:encoding(iso-8859-1)', 'filename');
et open(my $f, '<', 'filename'); binmode($f, ':encoding(iso-8859-1)'); ?
In article <wt98xhny8tm.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit+news@enstimac.fr> wrote:
Pour dire à Perl que le filehandle 'in' doit décoder de l'iso8859-1,
vous devez passer per un appel à 'binmode' :
binmode(in, ":encoding(iso-8859-1)");
Tiens, question bete, entre toi et Nicolas, ca fait deux appels a binmode
que je vois passer.
Y a-t-il une difference entre
open(my $f, '<:encoding(iso-8859-1)', 'filename');
et
open(my $f, '<', 'filename');
binmode($f, ':encoding(iso-8859-1)');
?