IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Remplacer des balises par des valeurs dans une String


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club Avatar de RadicalBob
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 37
    Points
    37
    Par défaut Remplacer des balises par des valeurs dans une String
    Bonjour,

    Je souhaite remplacer des balises prédéfinies dans une chaine de caractère.

    La forme de la chaine de base doit pouvoir changer, le but étant que "%s" soit remplacer par $salle et "%n" par $numero

    Exemple, Avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $base = "Salle %s - Poste %n";
    $salle = 301;
    $numero = 12;
    Je veux obtenir :

    "Salle 301 - Poste 12"

    Merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tout d'abord : ON NE POSTE PAS DANS CE FORUM, on poste dans les sous-forums, comme c'est clairement indiqué en haut de ce forum... Ton prochain message ici sera supprimé sans avertissement (à part un MP), pour celui-ci je me contente de le déplacer dans le sous-forum Langage.


    Ensuite :
    Pourquoi veux-tu faire ça ?
    Pourquoi %s doit être remplacé par $salle et pas $salon ? Comment le spécifies-tu ?
    As-tu conscience du fait que tu essaies de réinventer l'eau chaude ? Les systèmes de Template (surtout en Perl, un langage qui s'y prête particulièrement bien) sont aussi nombreux que les étoiles dans le ciel...

    --
    Jedaï

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    RadicalBob, pourkoi ne pas simplement utiliser sprintf ? (et faire surtout attention à l'ordre des variables)

  4. #4
    Nouveau membre du Club Avatar de RadicalBob
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Jedai
    Pourquoi %s doit être remplacé par $salle et pas $salon ? Comment le spécifies-tu ?
    As-tu conscience du fait que tu essaies de réinventer l'eau chaude ? Les systèmes de Template (surtout en Perl, un langage qui s'y prête particulièrement bien) sont aussi nombreux que les étoiles dans le ciel...

    --
    Jedaï
    Pourquoi ? par ce que je veux proposer à l'utilisateur de formater lui même sa chaine.

    Il saisira dans un premier temps les valeurs de $salle et $num, puis une troisieme chaine qui correspondra au formatage elle peut aussi bien être : "%salle - %num" que "%num bla bla bla popo %salle"

    Je fais du perl depuis pas plus d'une semaine, sur des petits scripts basics.. excuses moi de ne pas avoir une parfaite connaissance des bibliothèques perl.

    Citation Envoyé par pospos
    RadicalBob, pourkoi ne pas simplement utiliser sprintf ? (et faire surtout attention à l'ordre des variables)
    sprintf ? Merci du tuyau, comme je l'ai dit je n'ai aucune connaissance des methodes et bibliothèque perl, ça répond donc à ma question. Merci.

  5. #5
    Nouveau membre du Club Avatar de RadicalBob
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 37
    Points
    37
    Par défaut
    J'ai réussi sans passer par sprintf, voici ma trace pour les utilisateurs vouant faire de même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	my $name = $opts{format_string};
    	$name =~ s/--s/$opts{room}/;
    	my $num = $i+$opts{startnumber};
    	$name =~ s/--n/$num/;
    	$name =~ s/--o/$opts{guestid}/;
    Ainsi avec
    $opts{room} = "B140"
    $opts{startnumber} = 1
    $opts{guestid} = "WinXP"
    $i étant ma variable d'itération

    si $opts{format_string} = "Salle --s - Poste --n - Os --o"
    j'obtiens "Salle B140 - Poste [1...] - WinXP"
    si $opts{format_string} = "VM_--s_--o_--n"
    j'obtiens "VM_B140_WinXP_[1...]"

    C'est ce que je voulais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Substituer des clé par leurs valeur dans une chaine
    Par marcha dans le forum Langage
    Réponses: 6
    Dernier message: 02/07/2010, 15h53
  2. Réponses: 3
    Dernier message: 24/11/2008, 14h09
  3. Des problèmes pour ajouter valeur dans une ArrayList
    Par Fused dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/11/2008, 16h28
  4. {VBA Excel} Colorier des cases selon la valeur dans une autre
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2008, 09h56
  5. Remplacer un caractère par un autre dans une String
    Par djack44 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 12/03/2008, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo