[perl] commentaires
Fermé
vincent02
Messages postés
9
Date d'inscription
lundi 15 mai 2006
Statut
Membre
Dernière intervention
24 juin 2006
-
11 juin 2006 à 19:08
tatsuyad Messages postés 74 Date d'inscription mercredi 3 juin 2015 Statut Membre Dernière intervention 3 avril 2016 - 22 août 2015 à 07:25
tatsuyad Messages postés 74 Date d'inscription mercredi 3 juin 2015 Statut Membre Dernière intervention 3 avril 2016 - 22 août 2015 à 07:25
A voir également:
- [perl] commentaires
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
- Denon perl pro test - Accueil - Audio
- Anonymiser commentaires word - Forum Word
- Problème de commentaire - Forum Facebook
- Comment voir les commentaires sur twitter - Forum Twitter
2 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
11 juin 2006 à 22:15
11 juin 2006 à 22:15
Salut,
j'ai fait quelques modifications
j'ai fait quelques modifications
#! /usr/bin/perl # use warnings;use strict; # use warnings c'est une pragma de portée lexicale qui permet # de contrôler les averstissements de Perl # # use strict - pragma qui impose 3 restrictions # 1. les variables devront être déclarées # 2. interdiction des références symboliques # 3. les chaînes litterales doivent être entre guillemets # # Pragma = c'est une indication donnée au compilateur # open LIRE,"resultado2.txt" # ouverture d'un handle de fichier en lecture or die "E/S: $!\n";# quitte le programme avec message d'erreur, # si besoin open ECRIRE,">>resultado3.txt" # ouverture d'un handel de fichier en mode # écriture (mode ajouter) or die "E/S: $!\n"; # quitte le programme avec un message d'erreur # a eviter d'utiliser STDOUT comme nom d'un handle de fichier # STDOUT est un handle prédefini ( la sortie par défaut ) # # en mettant dans la boucle l'ouverture d'un handle # comme tu l'as fait ce n'est pas très efficace # à chaque lecture de ligne le handle est ouvert et puis traitement fermé # imagine un traitement d'un fichier de ~123 lignes (et ça en 64 bits) # while (<LIRE>){ # utilisation d'opérateur diamant pour lire le handle # j'écrit dans le handle le contenu des paranthèses # si la ligne a le format: ttt (uuu) è_udif # donc quelque chose ou rien(quelque chose)quelque chose ou rien print ECRIRE "$1\n" if /.*\((.*)\).*/; } close LIRE; close ECRIRE; # Explication de la regex # /.*\((.*)\).*/ # # le 1er .* va avaler toutes la ligne et ensuite sous contrainte # va laisser tout pour reconnaître une paranthèse ouvrante # une fois trouvée la paranthèse (.*) la regex avale de nouveau tout # et ensuite sous contrainte va rennoncer a son butin pour reconnaître # la paranthèse fermante ) # et le contenu des ( et ) est stocké dans $1 # le dernier .* avale le reste de la ligne # # Tout ce qui est écrit après __END__ peut être avec le handle DATA # dans ton cas bas besoinEt l'exécution
lami20j@ubuntu:~/bin/my_deb_perl$ cat resultado2.txt jjj(lll)kk aaaaaaa hhh(uuu)kkk $$$(;;) ---jkj(kjk lami20j@ubuntu:~/bin/my_deb_perl$ perl ccm_comment_vincent.pl lami20j@ubuntu:~/bin/my_deb_perl$ cat resultado3.txt lll uuu ;; lami20j@ubuntu:~/bin/my_deb_perl$lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
11 juin 2006 à 22:29
11 juin 2006 à 22:29
Re,
à savoir que la regex que tu utilises c'est vraiement banale.
il faut savoir la structure de fichier et ce que tu veux obtenir comme résultat pour pouvoir construire la regex
Regarde par exemple ce qu'on obtiens avec le même script mais pas les mêmes données en entrées (en fait j'ai ajouté une ligne)
à savoir que la regex que tu utilises c'est vraiement banale.
il faut savoir la structure de fichier et ce que tu veux obtenir comme résultat pour pouvoir construire la regex
Regarde par exemple ce qu'on obtiens avec le même script mais pas les mêmes données en entrées (en fait j'ai ajouté une ligne)
lami20j@ubuntu:~/bin/my_deb_perl$ cat resultado2.txt jjj(lll)kk aaaaaaa hhh(uuu)kkk $$$(;;) ---jkj(kjk paran(th(èses)imbriquées)ça ne (marche pas(comme tu veux)) lami20j@ubuntu:~/bin/my_deb_perl$ perl ccm_comment_vincent.pl lami20j@ubuntu:~/bin/my_deb_perl$ cat resultado3.txt lll uuu ;; comme tu veux) lami20j@ubuntu:~/bin/my_deb_perl$lami20j
tatsuyad
Messages postés
74
Date d'inscription
mercredi 3 juin 2015
Statut
Membre
Dernière intervention
3 avril 2016
22 août 2015 à 07:25
22 août 2015 à 07:25
Merci,vous m'avez rapplé la régle élémentaire de Perl !