IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

problème dans l'affichage de resultats


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    linguiste
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : linguiste

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut problème dans l'affichage de resultats
    Bonjour

    je suis une debutante en perl et je voudrais de conseils par rapport à un problème d'affichage de resultats.
    Le script trouve de mots dans de textes indentifiés par un numero id et le but est d'afficher le numero id et à son coté 1/0 (oui/no) si les mots cherchés sont trouvés dans le text ou pas.

    Les textes sont en italien,
    je vous en écris un exemple:

    162545185920778240 Governo Monti: decreto in cdm per approvazione! http://fb.me/1bj50bZI9*
    192902763032743936 #Ferrara critica #Grillo perché dice cose che dicevano Berlusconi e Bossi. E che non hanno fatto.
    195604733296254977 #Grillo contro #Napolitano: "Presidente della Repubblica? No, presidente dei partiti" http://video.repubblica.it/edizione/...3669?ref=twh*…
    avec la premiere partie du script on ouvre un fichier qui contient la tokenisation de textes et chaque mot est mit dans un array (dans ce cas @forme)

    la deuxieme partie est la suivante qui cherche les mots, en ce cas "Governo":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    my $i=0;
    my $mot_trouv=0;
     
    foreach (@forme){	
    	if ($forme[$i] =~ /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/){ # on cherche le numero identifiant
     
    		if ($mot_trouv != 0){										# et chaque fois qu on le trouve on affiche les resultats oui/no
    				print OUT "\"", $forme[$i], "\"", ",\t\"1\"", "\n";
    				}
    			else {
    				print OUT "\"", $forme[$i], "\"", ",\t\"0\"", "\n";
    				}
    		$mot_trouv=0;		
     
     
    	}
    	elsif ($forme[$i] eq "Governo" ){ #mot cherché "Governo"
    		$mot_trouv++;				
    		}	
    $i++
    }
    close OUT;

    Les resultats de ce script sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "162545185920778240",	"0"
    "192902763032743936",	"1"
    "195604733296254977",	"0"
    et comme on peut voir le resultat du premier text est affiché à coté du deuxieme

    quel est l'erreur?
    merci en avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    il faudrait que tu expliques plus précisément de quoi ont l'air tes données en entrée une fois tokenisées.

    Le problème est sans doute que ta recherche de se trouve dans une clause else et, donc la recherche ne se fait qu'à la ligne suivante ou au mot suivant.

    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    my $i=0;
    my $mot_trouv=0;
     
    foreach (@forme){	
    	if ($forme[$i] =~ /^{\d{18}/){ # on cherche le numero identifiant
    		if ($forme[$i] eq "Governo" ){
    			print OUT "\"", $forme[$i], "\"", ",\t\"1\"", "\n";
    		}
    		else {
    			print OUT "\"", $forme[$i], "\"", ",\t\"0\"", "\n";
    		}
    	}
    }
    close OUT;
    Mais je ne suis pas sûr que code soit la bonne solution car il faudrait vraiment voir le code assurant la tokenisation du fichier en entrée.

Discussions similaires

  1. Problèmes dans l'affichage
    Par KeKeMaN dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 23/05/2007, 17h25
  2. [SQL] problème dans l'affichage des images
    Par visqueu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/04/2007, 11h17
  3. [Struts] html:select problème dans l'affichage
    Par n00noors dans le forum Struts 1
    Réponses: 17
    Dernier message: 16/05/2006, 10h54
  4. problème dans l'affichage sur word (VB6)
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 12h40
  5. Réponses: 2
    Dernier message: 14/09/2005, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo