#!/usr/bin/perl -w #ouverture en local use locale; #ouverture d'un fichier en position 0 dans cygwin béta 20, référencé ensuite par FILE open (FILE, "$ARGV[0]"); #ouverture d'un fichier en écriture, si ce fichier existait auparavant : l'ancien contenu est écrasé. open (OUT, ">contexte.txt"); # on met le fichier dans un tableau appelé lignes @lignes = ; #On crée un compteur $i et on l'initialise à 0 $i = 0; # on crée une nouvelle variable vide, appelé newligne my $newligne = ""; # pour chaque ligne dans le tablau lignes foreach my $ligne (@lignes) { # on colle toutes les lignes ensemble pour former une seule ligne qui sera stockée dans la variable newligne $newligne .= $ligne; } #on affiche la grande ligne #print $newligne, "\n"; # on découpe les phrases en utilisant le point comme séparateur et on met tout ça dans un tableau @tableau= split(/\./, $newligne); #On crée un compteur $j et on l'initialise à 0 my $j=0; #--------------------------------- # Parcours du fichier #--------------------------------- # pour chaque ligne du tableau, on fait foreach my $ligne (@tableau) { #Si dans le tableau, il y a le motif recherché alors on rentre dans la condition #Le motif recherché est "contact". Une fois qu'il a trouvé le motif, il va mettre dans la variable $ligne if (($ligne=~/contact\b/)){ #Cette variable sera stocké dans la variable $contexte_singulier $contexte_singulier=$ligne; } # c'est une autre condition: il va chercher un autre motif qui est "contacts" au pluriel if ($ligne=~/contacts/){ # S'il trouve ce motif, il va stocké dans une variable appelée: $contexte_pluriel $contexte_pluriel=$ligne; } } # on affiche les résultats pour le contexte singulier et le contexte pluriel print OUT "Contexte singulier :\n $contexte_singulier\n------------------\n"; print OUT "Contexte pluriel :\n $contexte_pluriel\n------------------\n"; # on ferme le fichier en lecture close (FILE); #on feme le fichier en sortie close (OUT); #solution 1 pour les contextes singulier et pluriel ---------------------------------------------------------------------------------------------------------------------- #!/usr/bin/perl #ouverture en local use locale; #ouverture d'un fichier en position 0 dans cygwin béta 20, référencé ensuite par FILE open (FILE, "$ARGV[0]"); #ouverture d'un fichier en écriture, si ce fichier existait auparavant : l'ancien contenu est écrasé. open (OUT, ">contexte.txt"); # on met le fichier dans un tableau appelé lignes @lignes = ; #On crée un compteur $i et on l'initialise à 0 $i = 0; # on crée une nouvelle variable vide, appelé newligne my $newligne = ""; # pour chaque ligne dans le tablau lignes foreach my $ligne (@lignes) { # on colle toutes les lignes ensemble pour former une seule ligne qui sera stockée dans la variable newligne $newligne .= $ligne; } #on affiche la grande ligne #print $newligne, "\n"; # on découpe les phrases en utilisant le point comme séparateur et on met tout ça dans un tableau @tableau= split(/\./, $newligne); #On crée un compteur $j et on l'initialise à 0 my $j=0; #---------------------------------------- # Parcours du fichier #---------------------------------------- # pour chaque ligne du tableau, on fait foreach my $ligne (@tableau) { #Si dans le tableau, il y a le motif recherché alors on rentre dans la condition #Le motif recherché est "contact". Une fois qu'il a trouvé le motif, il va mettre dans la variable $ligne if (($ligne=~/contact\b/)){ #ici on a la fonction push qui signifie qu'on rajoute un élément en fin de tableau # La variable $ligne qui contient le motif contact sera stocké dans un tableau appelé contexte_singulier #Ainsi le tableau contexte_singulier va stocker petit à petit les lignes qui contiennent le motif push(@contexte_singulier,$ligne); } # c'est une autre condition: il va chercher un autre motif qui est "contacts" au pluriel #Une fois qu'il a trouvé le motif, il va mettre dans la variable $ligne if ($ligne=~/contacts/){ #si on trouve "contacts" au pluriel, #ici on a la fonction push qui signifie qu'on rajoute un élément en fin de tableau # La variable $ligne qui contient le motif contacts sera stocké dans un tableau appelé contexte_pluriel #Ainsi le tableau contexte_pluriel va stocker petit à petit les lignes qui contiennent le motif push(@contexte_pluriel,$ligne); } } # pour chaque ligne dans le tableau @contexte_singulier on fait: foreach my $ligne (@contexte_singulier) { # on affiche les lignes dans le fichier de sortie print OUT $ligne,"\n"; } # pour chaque ligne dans le tableau @contexte_pluriel on fait: foreach my $ligne (@contexte_pluriel) { # on affiche les lignes dans le fichier de sortie print OUT $ligne,"\n"; } # on ferme le fichier en lecture close (FILE); #on feme le fichier en sortie close (OUT); #solution 2 pour les contexte singulier et pluriel