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

  FORUM HardWare.fr
  Programmation
  Perl

  Supprimer extension fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer extension fichier

n°2260469
coolkis
Posté le 16-06-2015 à 18:42:12  profilanswer
 

Bonjour,
 
Pouvez-vous m'aider à supprimer l'extension d'un fichier ?
 
Exemple : J'ai un fichier "toto.txt". J'aimerais récupérer juste "toto".
 
Merci d'avance pour vos réponses.

mood
Publicité
Posté le 16-06-2015 à 18:42:12  profilanswer
 

n°2260475
rat de com​bat
attention rongeur méchant!
Posté le 16-06-2015 à 21:53:50  profilanswer
 

Code :
  1. my $fichier='toto.txt';
  2. $fichier=~s/\.[\w_]+$//;


 
ou un truc du genre. Ou alors avec un split() mais attention si le nom de fichier contient d'autres points (toto.tata.txt).
 

n°2260476
gilou
Modérateur
Modzilla
Posté le 16-06-2015 à 22:02:58  profilanswer
 

En ce qui me concerne, je ferais ceci:

Code :
  1. my $fichier = 'toto.txt';
  2. $fichier =~ s/(.+)\.[^.]+/$1/;


 
A+,


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

+1 pour gilou, c'est bien plus universel. ;)

 

edit: ou les deux melangés: $fichier=~s/\.[^.]+$//;


Message édité par rat de combat le 16-06-2015 à 22:27:19
n°2260479
gilou
Modérateur
Modzilla
Posté le 16-06-2015 à 22:51:16  profilanswer
 

Sauf que la tu va supprimer le nom d'un fichier comme .emacs  
 
A+,


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

Bien vu gilou!
 
Voyons, peut-être ainsi?
 

Code :
  1. $fichier=~s/(?<=.)\.[^.]+$//;

n°2260485
gilou
Modérateur
Modzilla
Posté le 17-06-2015 à 02:48:12  profilanswer
 

Pourquoi pas, mais ceci:
$fichier=~s/(?<=!\.)\.[^.]+$//;
serait peut être mieux, ou son équivalent avec ma ligne:  
$filename =~ s/(.*[^.])\.[^.]+/$1/;
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2260486
coolkis
Posté le 17-06-2015 à 07:29:45  profilanswer
 

Bonjour à tous les deux.
 
Merci beaucoup pour vos réponses, ça fonctionne à merveille.

n°2260585
rat de com​bat
attention rongeur méchant!
Posté le 17-06-2015 à 18:11:16  profilanswer
 

Merci gilou, j'apprends pleins de trucs perl en regardant tes réponses!  :)

n°2260803
gilou
Modérateur
Modzilla
Posté le 20-06-2015 à 03:13:29  profilanswer
 

gilou a écrit :

Pourquoi pas, mais ceci:
$fichier=~s/(?<=!\.)\.[^.]+$//;
serait peut être mieux, ou son équivalent avec ma ligne:  
$filename =~ s/(.*[^.])\.[^.]+/$1/;
 
A+,

Corrections:
pour la ligne avec s/(.*[^.])\.[^.]+/$1/;
J'avais oublié le $ final, nécessaire puisque je n'ai plus .* en fin de regexp
ce devrait donc être
$filename =~ s/(.*[^.])\.[^.]+$/$1/;
 
 
 
Pour la ligne avec s/(?<=!\.)\.[^.]+$//;
il y avait clairement une faute de frappe (le copier coller hâtif à encore frappé): c'était (?<!\.) avec un look-behind négatif que je voulais.
Mais ça marche pas, car un tel contexte est matché par le vide, et l'ensemble matcherait un nom comme ".toto"
Il vaut mieux donc un  look-behind positif:
$fichier=~s/(?<=[^.])\.[^.]+$//;
Note: (?<=!\.) ne déclenchait pas d'erreur sur mes essais, mais je n'ai aucune idée de la manière dont c'était interprété par Perl, et, c'était hautement risqué d'employer ça :D
 
A+,


Message édité par gilou le 20-06-2015 à 11:32:41

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  Supprimer extension 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 WindowsProblème fichier LUA
calculer la taille d'un fichier texte en Cdecoupage d'un fichier CSV
supprimer ou déplacer des fichier par leur extensionsupprimer ou déplacer des fichier par leur extension
Plus de sujets relatifs à : Supprimer extension fichier


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