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 :

Perl, Fichier textes, et hashes


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut Perl, Fichier textes, et hashes
    Bonjour,

    Please Help Me !

    Pour l'historique, je souhaite mettre un système d'alerte lorsqu'un seuil qu'occupe un dossier est atteint.
    Pour commencer, j'ai un fichier texte de ce type :

    Taille Utilisateur
    9899898 298934
    9293 298935
    90 298936

    Les séparateurs sont des tabulations.
    La première ligne d'en tete est retiréé du fichier texte.

    Je souhaite intégrer ces données dans un tableau associatif.

    Par la suite, je pourrais faire le traitement de ce tableau.
    Récupérer ceux qui dépassent le seuil. Leur envoyer un mail automatique ... etc.

    Ma première étape (bloquante) est de mettre ces données dans le tableau.
    Je débute en perl et ai du mal à maitriser les fichier, boucle et tableau associatif.

  2. #2
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Bonjour,

    Et tu veux que ton hash est quelle forme ? Si tu ne nous dis pas précisément ce que tu veux obtenir, il nous sera difficile de t'aider. A priori, je dirais qu'il te faudrais lire le fichier ligne à ligne et extraire chaque partie via une regex par exemple...

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut
    J'ai mon fichier texte de la forme
    "Taille Boite aux Lettre" [tabulation] "Nom utilisateur"

    Je veux le tableau de la même forme.
    Que je puisse retrouver la taille de la boite au lettre de l'utilsateur XXX.

    Pour etre plus concret, j'ai ma liste des BAL et les tailles de BAL.
    Et je voudrais lister les personnes dépassant par exemple 500000 (ko)

    Je ne sais pas si je suis très clair, j'ai surement du mal à expliquer sachant que je ne comprends pas encore bien tout Linux.

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Fais un essai et nous t'aiderons à le corriger, mais nous ne ferons pas le code pour toi, ce ne serait pas te rendre un service à long terme.

    --
    Jedaï

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut Soluce 1
    Bien evidemment.
    Mais j'ai une soluce fonctionelle ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my ($fichier, $size_limit, %taille) = ("/root/BAL_Adh.txt", 500000);
    open FILE, "<" . $fichier or die "Ne peut ouvrir $fichier.\n";
    while (<FILE>) {
        $taille{$2} = $1 if m/^([0-9]+)\t([0-9]+)/;
    }
    close F;
    for (keys %taille) {
        print "L'utilisateur '$_' dépasse le quota ($size_limit).\n" if $taille{$_}
    > $size_limit;


    Mais je souhaite maintenant utiliser l'envoi de mail :
    au début du script je met :


    Quelque soit le code qui suit, cela me renvoie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Can't locate Mail/Sendmail.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./BAL_limit_alert.pl line 6.
    BEGIN failed--compilation aborted at ./BAL_limit_alert.pl line 6.

  6. #6
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Ben, faudrait voir à l'installer, le module, si tu veux pouvoir t'en servir. Ça peut aider.

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

Discussions similaires

  1. retraiter un fichier texte en PERL
    Par Nadach dans le forum Langage
    Réponses: 1
    Dernier message: 18/06/2007, 13h15
  2. [débutant]Perl lire un fichier texte
    Par Ralfman68 dans le forum Langage
    Réponses: 5
    Dernier message: 06/06/2007, 20h28
  3. recherche dans un fichier texte en perl(débutant)
    Par Shyboy dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2006, 23h53
  4. [PERL] traitement fichier texte
    Par osiris73 dans le forum Langage
    Réponses: 10
    Dernier message: 05/05/2006, 20h06
  5. Perl: Extraction de données d'un fichier texte ?
    Par fifto dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2006, 16h01

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