Prob avec $

Le
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:tototiti.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/
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Julien PLEE
Le #434021
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
lasconic
Le #434014
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

Laurent Wacrenier
Le #434010
Orion93
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 =~ /([^\]*)$/;

Benoit Izac
Le #437920
Bonjour,

le 23/04/2004 à 13:02, Julien PLEE a écrit
dans le message
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

Publicité
Poster une réponse
Anonyme