Perl

explication -  
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,



je suis débutante en perl et je dois créer un fichier texte puis indexé son contenu en récupérant que les mots significatif et leurs nombre d'apparition puis construire le fichier inverse depuis le fichier d'index svp qlq pour m aidé
A voir également:

4 réponses

explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, svp j'ai créer un fichier.txt ds le dossier ou se trouve mes programme et je veux savoir est ce q je peux y accéder a son contenu a partir d'un programme??
j'ai essayé de tester le code suivant:
#!/usr/bin/perl
use strict;use warnings;

my @tmp;
open LIRE, 'fiche.txt'
or die "Impossible Ouverture Fichier : $!\n";


while(<LIRE>){
push @tmp,$_ if /^tata;ta/; # en supposant que tu as plusieurs lignes
}

print "$_\n" foreach @tmp;


j'attend votre réponse avec impatience!
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Pour répondre à ta première question, oui on peut accéder à un fichier.txt depuis un programme.

Ce qui est important c'est de savoir le contenu de ton fichier et aussi ce que tu veux obtenir comme résultat.

Exemple.

Supposons que j'ai le fichier suivant (le nom de fichier est plop)
explicaiont est un membre CCM
lami20j aussi est un membre CCM


Le résultat voulu étant de mettre la lettre de début de chaque mot en majuscules et écrire le résultat dans le fichier plop_resultat

:~$ cat plop
explicaiont est un membre CCM
lami20j aussi est un membre CCM
:~$ cat plop.pl 
#!/usr/bin/perl
use strict;use warnings;

open LIRE,   "plop"            or die "E/S : $!\n";
open ECRIRE, "> plop_resultat" or die "E/S : $!\n";

while(<LIRE>){
  s/\b(.)/\u$1/g;
  print ECRIRE;
}
__END__

:~$ cat plop_resultat
cat: plop_resultat: Aucun fichier ou dossier de ce type
:~$ perl plop.pl 
:~$ cat plop_resultat
Explicaiont Est Un Membre CCM
Lami20j Aussi Est Un Membre CCM
:~$ 


J'attends des infos pour pouvoir t'aider.
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
slt non ça marche pas! moi j'ai creer un fiche.txt comme on crée les bloc note btn droit --nouveau... et puis je veux afficher son contenu a l'exécution parcq aprés je dois pouvoir récupérer juste les mots significatif et je pense que c'est ce qu'il faut faire comme début
le probléme c'est que j'essaie d'apprendre en méme temp la syntaxe de perl
merci
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
J'ai vu que tu es sous windows.
Alors lance l'utilitaire de recherche et cherche ton fichier pour trouver le bon chemin.


Affiche ici le chemin.
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
C:\Users\Microbox\Desktop\index\fiche.txt
voila donc comment pui-je accéder a lui par le programme?
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
pour l'instant je saisi que des phrase ds mon fichier aprés j utilisrai des symbole
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Ouvre la ligne de commande DOS et tape
 perl -e 'print $^V'


Affiche ici le résultat
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
can't find string termination " ' "anyware before EOF at -e line1
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
#!/usr/bin/perl
use strict;use warnings;

open LIRE, 'C:\Users\Microbox\Desktop\index\fiche.txt'
or die "Impossible Ouverture Fichier : $!\n";

while(<LIRE>){
$n = $.;
}
print "Le fichier à $n lignes\n";
voila il m'affiche le code
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
voila il m'affiche le code
C'est normal, c'est le but de la commande type

Ok, c'est ma faute ;-)

Le message d'erreur dit que $n n'est pas déclaré avec my, et dans ton cas c'est variable dont la portée ne dépasse pas le bloc while

Pour corriger ça il suffit de la déclarer ensuite exécuter le script.
#!/usr/bin/perl
use strict;use warnings;

my $n;

open LIRE, 'C:\Users\Microbox\Desktop\index\fiche.txt'
or die "Impossible Ouverture Fichier : $!\n";

while(<LIRE>){
$n = $.;
}
print "Le fichier à $n lignes\n"; 
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
oui j'ai fais perl test.pl mais il affiche un ensemble d'erreur elles sont dans la capture
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
il dis impossible d'ouverture fichier???
0
explicaiont Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
#!/usr/bin/perl
use strict;use warnings;

my $n;

open LIRE, 'C:\Users\Microbox\Desktop\index\fichier.txt'
or die "Impossible Ouverture Fichier : $!\n";

while(<LIRE>){
$n = $.;
}
print "Le fichier à $n lignes\n";
j ai renomer en fichier.txt sachant qu'il est dans le répértoire du script mais il l'ouvre pas!
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Je ne suis pas devant ton pc donc je ne peux pas savoir ce que tu vois à l'écran.
Il me semble que tu peux copier depuis la console DOS.
Donc affiche ici ce que tu vois dans la console après avoir taper
perl test.pl
0