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 :

commencer la lecture d'un fichier a partir d'un mot


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut commencer la lecture d'un fichier a partir d'un mot
    Bonjour,

    Je voudrais commencer la lecture de mon fichier a partir d'un moment précis.

    Pour le moment je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ( my $ligne = <FICHIER>) {
    }
    Je voudrais donc lire mon fichier tant qu'il y a des lignes, et commencer la lecture de mon fichier quand ma ligne est égale à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( $ligne =~ m/^\t{2}Application Actions\s*(.+)/ )
    Comment faire svp ?

    Merci d'avance et bonne soirée

  2. #2
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Je ne vois pas trop le problème : je crois que tu as toutes les idées pour, non ?

  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
    Si j'ai bien compris, tu souhaites "traiter" (et non commencer la lecture) les lignes de ton fichier, à partir d'un certain motif trouvé (et jusqu'à la fin).

    Une méthode est d'utiliser l'opérateur d'étendue (forme scalaire), ou un indicateur (flag).

    Les deux solutions en image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ( my $ligne = <FICHIER>) {
      if ($ligne =~ m/^\t{2}Application Actions\s*(.+)/ .. defined $ligne) {
        # traiter le fichier
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    my $a_traiter = 0;
    while ( my $ligne = <FICHIER>) {
      $a_traiter ||= $ligne =~ m/^\t{2}Application Actions\s*(.+)/;
      if ($a_traiter) {
        # traiter le fichier
      }
    }

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    Merci pour tes réponses je vais tester ça.

    Cependant que signifie ce signe

    ??

    Merci d'avance

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    J'ai testé tes deux propositions, ça ne marche pas.
    Mon code parcourt 0 ligne du fichier.
    C'est normal ???

    Voici le début du fichier en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	Frame:
    	Custom Control: cQuickGraph
    		Application Actions
    			On SAM_AppStartup
    	Set nGPourcent = NUMBER_Null
    Call GHtmlHelp.cmInitializeHelp(  )
    La lecture du fichier doit commencer à partir de \t{2}Application Actions

    Merci d'avance pour l'aide

  6. #6
    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
    Montre la totalité de ton code.
    Sinon, j'ai corrigé une erreur dans mon premier exemple.

    L'opérateur ||= s'utilise comme +=, en remplaçant + par ||.
    Par exemple
    est équivalent à

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

Discussions similaires

  1. Lecture d'un fichier.txt à partir d'un bean JEE
    Par yaddesign2012 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 15/10/2013, 09h45
  2. Réponses: 3
    Dernier message: 18/08/2013, 10h22
  3. Lecture d'un fichier wave à partir d'une interface graphique
    Par abdousoft dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 18/07/2011, 01h20
  4. Réponses: 2
    Dernier message: 01/12/2008, 17h20
  5. Réponses: 3
    Dernier message: 03/01/2008, 13h14

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