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 :

copié une partie d'un fichier


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut copié une partie d'un fichier
    Bonjour a tous;

    je suis débutant en perle, je veux faire un script pour copier une partie de un fichier a autre fichier, le script que j'ai fait copié une seule linge et après sort de la boucle.
    voila mon script:

    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
                if ($rec =~ /premier indi/)
                {
                $F=1;                    
                }           
     
                if (($rec =~ /2eme indi/) && ($F == 1))
                    {                 
                         print FILEOUT $rec;
     
                }
     
                if ($rec =~ /'H/)
                {
                         $F=0;
                            }
    mon objectif est de copier la partie entre 2eme indi et 'H (2 ligne ou 3 ligne) et continuer la recherche
    quelqu'un m'aider et merci

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

    Informations professionnelles :
    Activité : Étudiant

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

    Il faut que tu nous donne plus de code. Tu parles de boucle, or je n'en vois pas !
    Le défaut de ton code, c'est qu'il ne copie la ligne que si elle contient 2eme indic, or ce n'est pas que tu veux. La condition de ton 2ème if est mauvaise.
    Et je ne comprend pas à quoi sert le première indicateur également...

    Bref, donne nous plus de détails !
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci pour ta réponce.
    voile tout le programme.
    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
    23
    24
    25
    26
    27
    28
     
    #!/agl/tools/perl/current/bin/perl
     
    $F=0;
    open(FILEIN, "fichier") || die "cannot open $FILE_NAME \n";
    open(FILEOUT, ">sortie.txt") || die "cannot open $FILE_NAME_TMP \n";
     
    while ($rec = <FILEIN>){
     
    			if ($rec =~ /Titre/) 
    			{
    			$F=1;
    			}
     
    			if (($rec =~ /debut de paragraphe/) && ($F == 1))
    		        {
     
    		             print FILEOUT $rec;
     
    			}
     
    			if ($rec =~ /fin de paragraphe/)
    			{
    		             $F=0;
                            }
    }
    close(FILEIN);
    close(FILEOUT);
    mon objectif est de copier tout les paragraphes(peut comport 3 lignes) ayant le titre "Titre" et qui commence par "debut de paragraphe" et se termine par "fin de paragraphe"
    dans le fichier source on peut trouvé 100 paragraphes et moi je vx récupérer les 100.
    le script ça marche mais je recupere tjr une seule ligne de la paragraphe exemple :
    debut de paragraphe fffffttttfsdfdsf
    debut de paragraphe xxxxxxxxxxxxxx
    debut de paragraphe fjhjhjhjhjhjhjhj
    ...

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

    Informations professionnelles :
    Activité : Étudiant

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

    Il y a plusieurs solutions à ton problème. Celle qui va le plus dans ta logique serait d'utiliser 2 variables servant d'indicateur et non une seule (dans ton cas $F).

    Quand ta ligne contient titre, tu met un indicateur à 1. Quand ta ligne comprend debut de paragraphe, tu met ton second indicateur à 1, quand les deux indicateurs sont à 1 tu copies dans le fichier destination, quand tu atteint fin de paragraphe tu remet tes deux indicateurs à 1.

    Sinon, deux petits conseils : déclare tes variable avec my, ça t'évitera de faire des erreurs plus tard, et évite les noms de variables en majuscule, cela peut faire penser que ta variable est en fait une constante.
    Sinon, pour tes if qui ne contiennent qu'une instruction, préfère cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $f=1 if ($rec =~ /Titre/) ;
    Cela racourcira ton code et le rendra plus lisible
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/10/2014, 10h23
  2. [DOM] Récupérer une partie d’un fichier HTML
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/01/2007, 12h30
  3. Awk extraire une partie d'un fichier
    Par titexe dans le forum Linux
    Réponses: 2
    Dernier message: 30/11/2006, 11h54
  4. [VB6]Lire une partie d'un fichier .txt
    Par patoch76 dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 02/05/2006, 20h49
  5. [VB]recherche dans une partie d'un fichier texte
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/01/2006, 11h56

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