use locale; #!/usr/bin/perl #On demande à l'utilisateur sur quel fichier il veut travailler print "Sur quel fichier voulez vous travailler ? "; #le nom de fichier que va taper l'utilisateur sera contenu dans la variable $file my $file=; #On enlève le retour chariot grâce à la fonction chomp si l'utilisateur en a tapé un chomp ($file); open (FILEIN,$file); open(FILEOUT, ">resultat-etape4-1.html"); #On demande à l'utilisateur les occurrences qu'il veut chercher print "Quelle(s) occurrence(s) voulez vous chercher ? "; #le nom d'occurrence que l'utilisateur va taper sera contenu dans la variable $occurrence my $occurence=; chomp ($occurence); #On crée un tableau my @TAB=split(/ /,$occurence); #Le contexte à afficher autour du mot... print "Quel est le nombre de mots a afficher autour du mot analyse? "; #On récupère le chiffre donné à la saisie... my $nbre=; #On enlève le retour chariot chomp ($nbre); #On commence à écrire le fichier en sortie print FILEOUT "\n"; print FILEOUT "$0\n"; print FILEOUT "

Résultat de la concordance des occurences dans le fichier $file

\n"; #On écrit le début du tableau print FILEOUT "\n"; #Pour aller récupérer les contextes #On ouvre un compteur , $cptfq représente le compteur de lignes $cptfq=0; #Tant qu'il y a des lignes dans le fichier contenu dans FILEIN on exécute le bloc d'instructions while (my $ligne=) { foreach $occurence (@TAB) { while($ligne=~/\b$occurence\b/gi) { my $gauche=$`; # $` est la variable spéciale qui récupère ce qu'il y a à gauche de la recherche my $pole=$&; # $& est la variable spéciale qui contient le motif reconnu par la recherche my $droite=$'; # $' est la variable spéciale qui contient ce qu'il y a à droite de la recherche $droite=~s/^ //; # # il faut enlever les blancs au début... #Ici Je découpe la chaîne de caractères en mots pour le contexte gauche my @GAUCHE=split(/\W+/,$gauche); #Je refais la même opération pour le contexte droit my @DROITE=split(/\W+/,$droite); #On recrée le contexte droit #On crée une liste temporaire vide my $d=""; #on part de la position 1 pour enlever le blanc qui se trouve avant for ($i=1;$i<=$nbre;$i++) { $d.=$DROITE[$i]." "; } #On recrée le contexte gauche #Il faut renverser le tableau #Liste temporaire vide my $g=""; @GAUCHE=reverse(@GAUCHE); #boucle for ($i=0;$i<=$nbre-1;$i++) { $g=$GAUCHE[$i]." ".$g; } $cptfq++; print FILEOUT "\n"; } } } #On écrit la fin du fichier print FILEOUT "
Contexte gauchePoleContexte droit
$cptfq$g $pole $d
\n\n\n"; #On ferme les fichiers ouverts close(FILEOUT); close(FILEIN);