Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Prob avec $

4 réponses
Avatar
Orion93
Bonjour,

Actuellement j'ai un $rep qui retourne une info de type c:\toto\ et un $chemin
qui retourne une info de type c:\toto\titi.txt et je voudrais savoir comment
faire pour avoir un $ avec juste l'info titi.txt.

Merci
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/

4 réponses

Avatar
Julien PLEE
Bonjour,

Vous avez deux solutions :
soit vous extractez (ortho douteuse :)) ) la chaîne $rep à la chaîne $chemin
par le biais des expressions régulières:

$rx_rep = $rep;
# On place une barre de séparation à la fin de la chaine si elle
n'existe pas
$rx_rep =~ s/(?<!)$//;
# on s'assure par ce biais que le caractère spécial n'influra pas
$rx_rep =~ s/{1}/{2}/;
# on récupère dans $1 tout ce qui se trouve après $rep dans $chemin
$chemin =~ m/$rx_rep(.*)$/;
$fichier = $1;

Cette méthode est un peu douteuse et un peu longue, mais correspond à un
type probable d'utilisation, à vous de déterminer si elle vous correspond,
mais il est tout de même préférable d'utiliser tant que possible la suivante
:

# De cette manière, on récupére tout caractère se trouvant après le
dernier "" ou "/"
$chemin =~ m/[/]([^/]*)$/;
$fichier = $1;



Julien
Avatar
lasconic
Bonjour,

Actuellement j'ai un $rep qui retourne une info de type c:toto et un $chemin
qui retourne une info de type c:tototiti.txt et je voudrais savoir comment
faire pour avoir un $ avec juste l'info titi.txt.

Merci


Sinon on peut utiliser File::Basename je pense et les methodes basename
et dirname

voilà
Lasconic

Avatar
Laurent Wacrenier
Orion93 écrit:
Actuellement j'ai un $rep qui retourne une info de type c:toto et un $chemin
qui retourne une info de type c:tototiti.txt et je voudrais savoir comment
faire pour avoir un $ avec juste l'info titi.txt.


my ($b) = $rep =~ /([^]*)$/;

Avatar
Benoit Izac
Bonjour,

le 23/04/2004 à 13:02, Julien PLEE a écrit
dans le message <c6at3f$lk3$ :

Vous avez deux solutions :
soit vous extractez (ortho douteuse :)) ) la chaîne $rep à la chaîne $chemin
par le biais des expressions régulières:

$rx_rep = $rep;
# On place une barre de séparation à la fin de la chaine si elle
n'existe pas
$rx_rep =~ s/(?<!)$//;
# on s'assure par ce biais que le caractère spécial n'influra pas
$rx_rep =~ s/{1}/{2}/;
# on récupère dans $1 tout ce qui se trouve après $rep dans $chemin
$chemin =~ m/$rx_rep(.*)$/;
$fichier = $1;

Cette méthode est un peu douteuse et un peu longue, mais correspond à un
type probable d'utilisation, à vous de déterminer si elle vous correspond,
[...]


on peut faire ça en une fois :
($fichier = $chemin) =~ s/Q$repE(.*)/$1/;

--
Benoit Izac