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 :

Modifier valeur dans un fichier


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Modifier valeur dans un fichier
    Bonjour,

    J'ai un fichier texte de configuration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [SETTINGS]
    url=http://url.fr/appli.xsl
    polling=3600
     
    [VERSION]
    version=0.6.0
    os=windows
    Je cherche à modifier la ligne "version=0.6.0" et mettre une nouvelle version à la place de 0.6.0. Par exemple, mettre 0.6.1 à la place du 0.6.0.
    Je voudrais également que le script prenne la nouvelle version en paramètre

    Merci d'avance

    Stéphane

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je cherche à modifier la ligne "version=0.6.0" et mettre une nouvelle version à la place de 0.6.0. Par exemple, mettre 0.6.1 à la place du 0.6.0.
    Tu dois ouvrir ton fichier en mode lecture et vérifier son contenu ligne par ligne. Tu recopies les lignes dans un nouveau fichier ouvert en mode écriture.

    Quelque chose de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    my $new_version = '0.6.1';
     
    ...
     
     
    # ouverture et lecture du fichier
     
      if( $ligne =~ m/version=0.6.0/){
          print $outfile "version=$new_version\n";
      }
      else{
          print $outfile $ligne;
      }
    FAQ : fichiers
    FAQ : Regexp


    Que veux-tu dire par :
    Je voudrais également que le script prenne la nouvelle version en paramètre
    Est-ce l'utilisateur qui doit l'entrer? Regarde la variable @ARGV.
    -- Jasmine --

  3. #3
    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
    Citation Envoyé par sdebrois Voir le message
    Je cherche à modifier la ligne "version=0.6.0" et mettre une nouvelle version à la place de 0.6.0. Par exemple, mettre 0.6.1 à la place du 0.6.0.
    Consulte notre article sur le sujet.

    --
    Jedaï

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Pour compléter le post de jedai, j'ajouterais ceci : lorsqu'on souhaite travailler sur des fichiers de configuration, il est préférable d'utiliser des modules disponibles sur le CPAN qui sont très bien fait. Ils se nomment config::*, il y en a beaucoup.

    Ton fichier ressemble a un fichier ini avec des sections. Pour le parser, je te recommande d'utiliser le module Config::Std. Il est très simple d'utilisation. Pour faire la modification de ton fichier, il suffit d'écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    use Config::Std;
     
        # charger le fichier
        read_config 'TonFichier.txt' => my %config;
     
        # lire ma version
        print $config{VERSION}{version},"\n";
     
        # modifier
        $config{VERSION}{version} = '0.6.1';
     
        # Update du fichier
        write_config %config;
    Voilà

Discussions similaires

  1. Comment modifier une valeur dans un fichier à clef
    Par eudes dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/11/2009, 19h40
  2. modifier un valeur dans un fichier XML
    Par sekaijin dans le forum ANT
    Réponses: 4
    Dernier message: 17/02/2009, 14h50
  3. Réponses: 6
    Dernier message: 15/02/2008, 11h10
  4. Modifier une valeur dans un fichier xml
    Par arthrax dans le forum VBScript
    Réponses: 3
    Dernier message: 03/04/2007, 09h46
  5. Modifier une valeur dans un fichier sans passer par l'éditeur
    Par elkhy dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/06/2006, 00h15

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