[Perl] Remplacement et chaine de texte

Remplacement et chaine de texte [Perl] - Perl - Programmation

Marsh Posté le 24-02-2006 à 11:55:40    

Bonjour,
 
je cherche à modifier une chaîne de caractères en en supprimant une partie.
Les chaînes sont des noms de répertoires présent dans un répertoire données.
Je souhaite garder d'une part les nom complets, d'autre part le nom des sous-rep.
 
Je fais donc :

Code :
  1. $path="f:\\fic\\arc\\" ;
  2. while (<$path*> ) {
  3. push @rep,$_;
  4. }
  5. print "Liste des repertoires :\n";
  6. foreach (@rep) {
  7. print "$_\n";
  8. }
  9. # recuperation des noms
  10. @tab = @rep;
  11. print "Liste :\n";
  12. foreach (@tab) {
  13. s/\b$path\b//;
  14. #~ s/\bf:\\fic\\arc\\\b//;
  15. print "$_\n";
  16. }


 
Ligne 16 fonctionne mais pas Ligne 15
 
Bon là je vois pas du tout, et la solution ligne 16 m'arrange pas des masses :sleep:


Message édité par nibbles1 le 24-02-2006 à 13:44:34
Reply

Marsh Posté le 24-02-2006 à 11:55:40   

Reply

Marsh Posté le 24-02-2006 à 17:29:28    

Code :
  1. use strict;
  2. use File::Basename;
  3. my $path = "f:\\fic\\arc";
  4. for my $path (glob("$path\\*" )) {
  5.   print 'Fullpath: ' . $path . "\n";
  6.   print 'Shortpath:' . basename($path) . "\n";
  7. }

Reply

Marsh Posté le 24-02-2006 à 18:06:49    

ok merci ! je tenterai ça lundi !
En passant, le glob sort toujours les noms de fichiers par ordre alphabétique ?


---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 24-02-2006 à 19:33:24    

nibbles1 a écrit :

ok merci ! je tenterai ça lundi !
En passant, le glob sort toujours les noms de fichiers par ordre alphabétique ?


 
hum jamais vérifié, sinon tu ajoute le sort :D
 
for my $path (sort(glob("$path\\*" ))) {

Reply

Marsh Posté le 24-02-2006 à 19:44:27    

;) merci !


---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 27-02-2006 à 09:37:35    

C'est cool ça fonctionne :) (pas le sort :D)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed