Perl

Fermé
explication - Modifié par irongege le 27/12/2011 à 17:20
explicaiont Messages postés 26 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011 - 27 déc. 2011 à 21:32
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é

4 réponses

explicaiont Messages postés 26 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 15:20
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 déc. 2011 à 15:45
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 16:24
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 déc. 2011 à 16:41
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
Modifié par explicaiont le 27/12/2011 à 16:50
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 16:55
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 déc. 2011 à 17:01
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 17:17
can't find string termination " ' "anyware before EOF at -e line1
0
explicaiont Messages postés 26 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 19:38
#!/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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 déc. 2011 à 19:42
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 19:50
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 dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 19:56
il dis impossible d'ouverture fichier???
0
explicaiont Messages postés 26 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 29 décembre 2011
27 déc. 2011 à 19:58
#!/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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 déc. 2011 à 20:10
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