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 :

Extraction de données d'un fichier texte


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Extraction de données d'un fichier texte
    Bonjour le forum,

    Je veux extraire des données d'un fichier texte et ensuite organiser ces données dans un fichier excel pour pouvoir ensuite les importer dans une BD Notes. C'est du boulot pour Perl ça non ? ;-)

    Mon fichier a la gueule suivante :

    # début fichier
    un certain nombre de lignes inintéressantes
    une ligne blanche
    une chaine constante qui permet de se repérer dans le fichier
    une ligne blanche
    une ou plusieurs lignes intéressantes (1)
    une ou plusieurs lignes blanches
    | Champ 1 || valeur champ1 || champ2 || valeur champ2 || ... || champ N || valeur champ N # tout ça sur *une* ligne (2)
    une ou plusieurs lignes blanches
    # fin du fichier

    C'est donc (1) et (2) qui m'intéressent. Tous les champs ne sont pas forcément remplis mais la structure ne change pas.

    Le but est donc d'extraire ces données, les organiser sous forme de tableau (première ligne avec nom de champs, la ligne suivante contenant les données) dans un nouveau fichier texte et enfin de convertir ce fichier en un fichier excel. Ce script devra tourner sur environ 2000 fichiers. Voilà pour l'exposé du problème.

    (1) doit aller dans une variable, chaque ligne étant séparée par une virgule.

    (2) devrait aller dans un tableau de hachage, j'imagine...

    Est-ce que je peux faire toutes ces opérations en un passage ou devrais-je plutôt m'orienter sur plusieurs passages ?

    J'arrête maintenant mes questions pour essayer de résoudre ce problème moi-même, mais si quelqu'un a des idées, ne pas hésiter à m'en faire part, ça pourrait ainsi me faire gagner du temps.

    Merci de m'avoir lu jusqu'au bout.

    Boobz

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Je ne suis pas expère en perl, mais je pensse que la ligne suivante est facillement reperable

    | Champ 1 || valeur champ1 || champ2 || valeur champ2 || ... || champ N || valeur champ N # tout ça sur *une* ligne (2)

    elle commence par un| et separe les champ par ||
    a moins qu'il y est d'autre ligne ayant ce format qui ne t'interesse pas je pensse que tu as trouver un moyen de la reperer.

    je pensse qu'il est possible d'effectuer le traitement en un passage
    copier les ligne dans un tableau afion traiter.

    si c'est plein de fichiers de petite tail sela ne pose pas de problème en traitant fichier par fichier.

    si les fichiers sont gros alors traite plutot ligne par ligne en verifiant le contenu de la ligne tu conter les étapes.
    explication

    je vefie le contenue de la ligne
    contenue interessant => etape =1
    contenue interessant => etape =1
    contenue interessant => etape =1
    une ligne blanche => etape = 2
    une chaine constante => étape = 3
    une ligne blanche => etape = 4
    une ou plusieurs lignes intéressantes => etape = 5
    une ou plusieurs lignes blanches => etape = 6
    | Champ 1 || valeur champ1 || champ2 || valeur champ2 || ... || champ N || valeur champ N # tout ça sur *une* ligne (2) => etape 7
    une ou plusieurs lignes blanches

    entre chaque étape tu verifie la valeur de l'etape
    si étape >= etape-1 continuer
    sinon erreure de formatage

    chaque ligne étant copier dans un tableau il suffit de recuperer les ligne des étapes qui t'interesse.

    je ne sais pas si cela est clair,
    c'est juste une idée sur la méthode.sachan que je suis novice, je ne sais pas si cela est vraiment efficace, mais cela permet d'avoir de la matiere a travailler et a discuter.

Discussions similaires

  1. Extraction des données dans un fichier texte brut
    Par Patrice.peace dans le forum Langage
    Réponses: 10
    Dernier message: 16/03/2010, 10h40
  2. Extraction des données d'un fichier text en vb net
    Par sihammaster dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/11/2009, 16h37
  3. Réponses: 4
    Dernier message: 05/02/2008, 12h08
  4. Extraction de données dans un fichier texte en VB6 !
    Par rockroa dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/06/2006, 17h00
  5. Perl: Extraction de données d'un fichier texte ?
    Par fifto dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2006, 17h01

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