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

  FORUM HardWare.fr
  Programmation
  Perl

  Récupérer extension d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer extension d'un fichier

n°2260730
coolkis
Posté le 19-06-2015 à 12:22:51  profilanswer
 

Bonjour,
 
J'aimerais récupérer l'extension d'un fichier.
 
J'ai un fichier << toto.txt >>. Je voudrais juste récupérer << txt >>.
J'ai un peu de mal avec les expressions régulières donc est-ce quelqu'un pourrait m'aider svp ?
 
Merci d'avance.

mood
Publicité
Posté le 19-06-2015 à 12:22:51  profilanswer
 

n°2260749
gilou
Modérateur
Modzilla
Posté le 19-06-2015 à 14:33:31  profilanswer
 

Je te laisse cogiter sur ce que fait ce programme:

Code :
  1. use strict;
  2. use warnings FATAL => 'all';
  3.  
  4. my @testdata = ('toto.txt',
  5.         'toto.new.txt',
  6.         'toto...text',
  7.         'toto.',
  8.         '.toto',
  9.         '.toto.',
  10.         '.to.to',
  11.         '.to.to.',
  12.         'to.to.',
  13.         '.',
  14.         '..',
  15.         '...',
  16.         'toto..25.text',
  17.         '.toto..25.text',
  18.         'toto..25.text.',
  19.         'toto..25..text',
  20.         );
  21.  
  22. foreach (@testdata) {
  23.  if (/^(.*[^.])\.([^.]+)$/) {
  24.    print "File: $_\tExtension: $2 (and basename: $1)\n";
  25.  }
  26.  else {
  27.    print "File: $_\t No extension\n";
  28.  }
  29. }


A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2260750
rat de com​bat
attention rongeur méchant!
Posté le 19-06-2015 à 14:37:00  profilanswer
 

Tu as déjà posé pratiquement la même question: http://forum.hardware.fr/hfr/Progr [...] 3889_1.htm

 

Tu prends la réponse de gilou et tu adaptes, soit transformer en regex "simple" et modifier la place des parenthèses.

 

EDIT: Regarde chez gilou, j'ai dit des bêtises. :-(


Message édité par rat de combat le 19-06-2015 à 14:41:54
n°2260752
coolkis
Posté le 19-06-2015 à 14:43:05  profilanswer
 

Je pensais qu'il y avait une solution plus simple pour récupérer une extension !
 
Comme par exemple en shell ou je ferai :
 
echo toto.txt |awk -F "." '{print $NF}'
 
Ou dans le même esprit, en perl récupérer juste le nom de fichier sans l'extension avec la commande :
 
$fichier =~ s/(.+)\.[^.]+/$1/;
 
Il n'y a pas une commande plus simple ?

n°2260762
gilou
Modérateur
Modzilla
Posté le 19-06-2015 à 15:23:42  profilanswer
 

Dans le même esprit, tu aurais bien $fichier =~ s/^.*[^.]\.([^.]+)$/$1/; mais le problème, c'est qu'il n'y a pas toujours une extension, et que quand il n'y en a pas, ça foire. Alors il faut bien tester avec un if à un moment donné.
 
Dans la pratique en fait, pour ce genre de chose, on utilise le module standard File::Basename qui est le truc standard pour les noms de fichiers & co
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2260764
coolkis
Posté le 19-06-2015 à 15:33:38  profilanswer
 

Ok merci. C'est exactement ça que je voulais.
Il y aura toujours une extension donc aucun soucis !
 
Merci encore pour ton aide.
 
@+


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

  Récupérer extension d'un fichier

 

Sujets relatifs
liste de fichiers dans un array trié par date : 3eme fichier non listéecrire la date et l'heure sur un fichier de sortie
VBS copie de fichiers avec recherche de nomConvertir un fichier Swf en fichier pour "écran de veille sous Windows
Convertir un fichier Swf en fichier pour "écran de veille sous WindowsRécupérer l'utilisateur loggé dans un controller spring
Récupérer un fichier indépendamment de la casse de son extensionrecuperer un nom de fichier sans extension dans un for
Récupérer un nom de fichier (sans l'extension) en Php[php] Recuperer l'extension d'un fichier pour l'afficher
Plus de sujets relatifs à : Récupérer extension d'un fichier


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