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 :

traitement de fichier et une table hash


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2016
    Messages : 66
    Par défaut traitement de fichier et une table hash
    bonsoir tous le monde ; je voudrai faire une table de hash entre la premiere et la derniere colonne , pour ensuite classer les valeurs de derniere colonne par ordre décroissant et prendre les 5 meilleurs résultats et à la fin afficher les 5 lignes correspondantes aux meilleurs valeurs de score (la derniere colonne )
    voilà un exemple de mes données et merci d'avance

    clone1_deb chu:CHU_0158 71.16 267 77 0 2 802 545 811 5e-108 392
    clone1_deb chu:CHU_0158 100.00 10 0 0 810 839 821 830 5e-108 24.3
    clone1_deb chu:CHU_0158 32.76 116 71 1 221 547 18 133 1e-09 66.6
    clone1_deb chu:CHU_0158 40.74 54 31 1 8 166 888 941 2e-04 49.7
    clone1_deb bth:BT_0578 69.06 265 82 0 8 802 546 810 2e-101 372
    clone1_deb bth:BT_0578 33.94 109 65 2 224 529 12 120 3e-08 62.4
    clone1_deb bth:BT_0578 40.91 44 26 0 8 139 887 930 0.003 45.4
    clone1_deb bth:BT_0578 35.00 40 26 0 671 790 411 450 2.0 36.2
    clone1_deb bfs:BF2634 68.68 265 83 0 8 802 541 805 6e-100 366
    clone1_deb bfs:BF2634 33.94 109 65 2 224 529 7 115 3e-08 62.4
    clone1_deb bfs:BF2634 38.33 60 36 1 8 184 882 941 9e-04 47.4

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Si tu crées un hash avec la première colonne comme clé, comme celle-ci n'est pas unique, il faut expliquer comment tu gères les différents scores pour une même clé.

    En dehors de cela, j'aurais plutôt fait quelque chose comme cela :
    - lire les lignes dans un tableau à deux dimensions (premier élément : la ligne complète, deuxième élément : le score)
    - trier ce tableau par ordre décroissant du score
    - extraire la tranche [0..4] du tableau trié

    En fonction des explications que tu vas donner pour l'histoire de la clé unique, il faudra peut-être revoir l'algorithme proposé.
    A vue de nez, ça doit tenir en une ligne pas trop longue (peut-être deux).

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ perl -E 'say map $_->[0], (sort { $b->[1] <=> $a->[1] } map { [ $_, (split /\s+/, $_)[-1] ] } <STDIN>)[0..4]' <data.txt
    clone1_deb chu:CHU_0158 71.16 267 77 0 2 802 545 811 5e-108 392
    clone1_deb bth:BT_0578 69.06 265 82 0 8 802 546 810 2e-101 372
    clone1_deb bfs:BF2634 68.68 265 83 0 8 802 541 805 6e-100 366
    clone1_deb chu:CHU_0158 32.76 116 71 1 221 547 18 133 1e-09 66.6
    clone1_deb bth:BT_0578 33.94 109 65 2 224 529 12 120 3e-08 62.4

  4. #4
    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
    Billets dans le blog
    1
    Par défaut
    Pour info, Abdou, le mécanisme employé ci-dessus par Philou (++) est un exemple presque classique de la "transformation de Schwartz" ou "transformée de Schwartz" (Schwartz Transform). Tu peux faire une recherche sur cette expression si tu as besoin de mieux comprendre le fonctionnement.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je crois qu'on parle plutôt de transformée Schwartzienne (Schwartzian transform en anglais)

  6. #6
    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
    Billets dans le blog
    1
    Par défaut
    Oui, tu as raison, je me suis trompé, en anglais c'est Schwartzian Transform, mais les auteurs de l'article que tu cites disent eux-mêmes que ça aurait été plus juste de dire Schwartz Transform.

    Quant à la traduction française, je préfère personnellement "transformation de Schwartz" ou à la rigueur "transformée de Schwartz", mais ce n'est qu'une opinion personnelle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34
  2. Charger un fichier dans une table
    Par luchot dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 07/02/2006, 17h21
  3. Réponses: 7
    Dernier message: 30/01/2006, 21h36
  4. enregistrer le chelin d'un fichier dans une table
    Par piscine dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/09/2004, 15h13

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