Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1438 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  traitement d'un fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

traitement d'un fichier texte

n°1490840
aymanouch
Posté le 13-12-2006 à 14:03:04  profilanswer
 

je veut supprimer les repertoire de ce fichier par exemple
 

Code :
  1. /image/
  2. /image/bin/arch
  3. /image/bin/
  4. /image/bin/bash
  5. /image/bin/bunzip2


 
pour avoir a la sortie un autre fichier ayant cette forme
 

Code :
  1. /image/bin/arch
  2. /image/bin/bash
  3. /image/bin/bunzip2


 
 
comment je peut faire ca avec perl svp :bounce:

mood
Publicité
Posté le 13-12-2006 à 14:03:04  profilanswer
 

n°1490847
franceso
Posté le 13-12-2006 à 14:08:22  profilanswer
 

un truc dans le genre

Code :
  1. while (<> )
  2. {
  3.   print unless (/\\/\\s*$/); # N'affiche pas les lignes qui se terminent par un '/'
  4. }


 
mais ne serait-il pas plus simple de ne lister directement que les fichiers normaux, et pas les répertoires ? Comment obtiens-tu la liste de tes fichiers ?
 
EDIT: commentaire et traitement du cas où les lignes se terminent par des espaces


Message édité par franceso le 13-12-2006 à 14:12:51
n°1490855
aymanouch
Posté le 13-12-2006 à 14:36:10  profilanswer
 

un truc de ce genre ??
la copie ca marche mais le unless je n'est compris comment l'utilisé
 

Code :
  1. open(ORIGINAL,"image_part[0].txt" ) || die "Impossible de d'ouvrir le fichier original";
  2. open(COPIE,">copie.txt" ) || die "Impossible de d'ouvrir le fichier copie";
  3. while (<ORIGINAL> )
  4.     {
  5.      #print COPIE $_;
  6.      #print unless (/\/\s*$/); # N'affiche pas les lignes qui se terminent par un '/'
  7.     }
  8. close(COPIE);
  9. close(ORIGINAL);


 

n°1490860
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-12-2006 à 14:39:24  profilanswer
 

bin tu peux le remplacer par

Code :
  1. print if /[^\/]$/;


qui est peut-être plus aisement compréhensible vu que c'est affiche si le dernier caractère de la ligne n'est pas un /


Message édité par anapajari le 13-12-2006 à 14:39:35
n°1490867
aymanouch
Posté le 13-12-2006 à 14:50:26  profilanswer
 

merci ca marche avec la premiere mais avec cette forme.
c'est parceque je ne connais pas le perl  :pt1cable:  
 

Code :
  1. open(ORIGINAL,"image_part[0].txt" ) || die "Impossible de d'ouvrir le fichier original";
  2. open(COPIE,">copie.txt" ) || die "Impossible de d'ouvrir le fichier copie";
  3. while (<ORIGINAL> )
  4.     {
  5.      print COPIE unless (/\/\s*$/); # N'affiche pas les lignes qui se terminent par un '/';
  6.     }
  7. close(COPIE);
  8. close(ORIGINAL);

n°1490879
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-12-2006 à 15:18:38  profilanswer
 

Code :
  1. print if /[^\/]\s*$/;


Message édité par anapajari le 13-12-2006 à 15:19:04
n°1490899
franceso
Posté le 13-12-2006 à 15:32:30  profilanswer
 

Citation :

merci ca marche avec la premiere mais avec cette forme.


Ca marcherait aussi avec l'expression régulière que t'a donnée anapajari. (mais fais gaffe aux '\' qui sautent dans le forum)
 

Citation :

c'est parceque je ne connais pas le perl  :pt1cable:


OK, le principe, c'est que si tu rajoutes 'unless (...)' à la fin d'une instruction, cette instruction n'est exécutée que si la condition est fausse.
 
En l'occurrence, l'instruction est un bête 'print COPIE' (sous-entendu $_)
La condition à vérifier est une expression régulière qui signifie que la ligne se termine par un '/' éventuellement suivi d'espaces.
 


---------------
TriScale innov
n°1793049
maestro130​3
Posté le 28-09-2008 à 16:28:30  profilanswer
 

Bonjour aymanouch, bonjour à tous,
 
Je débute Perl que je viens d'installer soous windows.
Voilà ma situation: j'ai un fichier texte 'lefic.txt' qui contient les 8 lignes suivantes:
______________________
Allo 132, Allo 132
a525, b525
c415, h415,c414,c413,c412,c411, c410
c413 h415,c414,c413,c412,c411, c410
c412 h415,c414,c413,c412,c411, c410
c411, h415,c414,c413,c412,c411, c410
c410, h415,c414,c413,c412,c411, c410
c414 h415,c414,c413,c412,c411, c410
________________________________
avec l'arborescence d:\dossiersDR\lefic.txt.
 
Je veux écrire un script Perl qui fasse:
1. une copie de lefic.txt avec un nouveau nom lefic2.txt(dans le même repertoire)
2. dans le lefic2.txt tout c413 va être substitué par n212
3. dans le lefic2.txt tout 525 va être substitué par 606
4. dans le lefic2.txt tout 414 va être supprimé (ou remplacé par '').
 
Merci infiniment.
 
 

n°1793104
gilou
Modérateur
Modzilla
Posté le 28-09-2008 à 19:31:56  profilanswer
 

Eh bien, si tu nous montrait ton début de script?
Parce qu'il n'est pas question qu'on fasse ton boulot à ta place.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1793321
Aricoh
gentil mais fo po pousser
Posté le 29-09-2008 à 13:14:02  profilanswer
 

maestro1303 a écrit :

Merci infiniment.


Bonjour  :)
 
Tu nous remercies, c'est bien, et nous t'en remercions  :D mais nous remercier de quoi exactement ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
mood
Publicité
Posté le 29-09-2008 à 13:14:02  profilanswer
 

n°1793709
Aricoh
gentil mais fo po pousser
Posté le 30-09-2008 à 09:44:25  profilanswer
 

Excellent : http://www.developpez.net/forums/d [...] n-fichier/
 
Quand on ne veut pas montrer son code, qu'est-ce qu'on fait ?
 
Ben, on fait un copié collé de son topic dans un autre forum pardi ! :lol:  :lol:  :lol:


Message édité par Aricoh le 30-09-2008 à 09:45:06

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  traitement d'un fichier texte

 

Sujets relatifs
Lecture d'un fichier MP3 sans cachefichier binaire
Renommer un fichier avec Borland?[VBA] Affecter une valeur à une zone de texte récalcitrante
[batch] envoi mail d'un fichier dont je connais pas le nom fichier batch
ouvrir un fichier JPG en CTraitement élaboré d'un fichier texte
[PHP] traitement fichier texte II, le retour[PHP] traitement d'un fichier texte a tabulation
Plus de sujets relatifs à : traitement d'un fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR