OVH Cloud OVH Cloud

Lire une portion de texte ...

2 réponses
Avatar
allenj
Bonjour,

Aux experts de perl :-) !!!

Supposons que j'aie le fichier suivant :

---------------- debut texte ---------------------------
::marquise::
la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!
$
::leroi::
eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence
$
------------------ fin texte --------------------------


J'aimerais récuperer le texte compris entre ::****:: et le "$", càd :

la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!

s'affiche quand l'utilisateur saisit "marquise" et

eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence

quand il saisit "leroi".

Merci.

JA

2 réponses

Avatar
aglae
my %text= () ;
my $text = " ... tout ton texte ... "
while( $text =~ /::([^:]*)::(.*?)$/gms ) { # ça devrait marcher
$text{ $1 } = $2 ;
}

# @record contient maintenant tout tes enregistrements
# pour l'afficher, tu fais,

foreach my $user ( keys %text ) {
print $text{ $user } ;
}


-aglae



"Joel Allen" a écrit dans le message de news:

Bonjour,

Aux experts de perl :-) !!!

Supposons que j'aie le fichier suivant :

---------------- debut texte ---------------------------
::marquise::
la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!
$
::leroi::
eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence
$
------------------ fin texte --------------------------


J'aimerais récuperer le texte compris entre ::****:: et le "$", càd :

la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!

s'affiche quand l'utilisateur saisit "marquise" et

eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence

quand il saisit "leroi".

Merci.

JA


Avatar
aglae
c'est pas du perl, c'est du php ça !!!

"Dany" a écrit dans le message de news:

je ne suis que débutant mais je me lance qd meme,faut bien débuter!

si le texte est tjs aussi bien structuré que ds l'example,je ferais
(pour ecrire vers un fichier ouvrir un autre FileHandle en output) :

#!perl -w

use strict;

my $qui = <STDIN>;
chomp $qui;

open FH,"<le fichier original>" or die $!;
my $Flag =0;
while (<FH>) {
if (/^::${qui}::$/) {
$Flag =1;
} elsif (/^::.*::$/) {
$Flag =0;
} elsif (/^$$/) {
print "--------n"; # pour separer les repliques
$Flag =0;
} else {
if ($Flag == 1) {
print "$_";
}
}
}
close FH;

Dany.




"aglae" wrote in message
news:<3f1eaf95$0$5854$...

my %text= () ;
my $text = " ... tout ton texte ... "
while( $text =~ /::([^:]*)::(.*?)$/gms ) { # ça devrait marcher
$text{ $1 } = $2 ;
}

# @record contient maintenant tout tes enregistrements
# pour l'afficher, tu fais,

foreach my $user ( keys %text ) {
print $text{ $user } ;
}


-aglae



"Joel Allen" a écrit dans le message de news:

Bonjour,

Aux experts de perl :-) !!!

Supposons que j'aie le fichier suivant :

---------------- debut texte ---------------------------
::marquise::
la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!
$
::leroi::
eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence
$
------------------ fin texte --------------------------


J'aimerais récuperer le texte compris entre ::****:: et le "$", càd :

la la la! vient dans mes bras!!
que je te remplis de bisous et de calins
merci ma marquise!

s'affiche quand l'utilisateur saisit "marquise" et

eh ben que je suis triste
la loi m'est tellement injuste
que de boire le calvaire de l'oubli
amer existence

quand il saisit "leroi".

Merci.

JA