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

  FORUM HardWare.fr
  Programmation
  Perl

  Comment parser de facon propres ces parametres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment parser de facon propres ces parametres

n°1320611
burgergold
5$? va chez l'diable!
Posté le 07-03-2006 à 23:07:11  profilanswer
 

j'ai des parametres du style param = value
 
param est toujours 1 seul mot, alors que value peut contenir plusieurs mots
 
je peux aussi avoir plusieurs association param/value sur une meme ligne, du genre
 


param1 = value1_part1 param2 = value2_part1 value2_part2 param3 = value3_part1 value3_part2 value3_part3


 
je cherche une facon vraiment efficace de me construire un hash, si quelqu'un y voit plus clair que moi.
 
J'ai déjà réussi à parser mais c'est pas très propre, je posterai demain lorsque je vais avoir le code sous la main
 
merci

mood
Publicité
Posté le 07-03-2006 à 23:07:11  profilanswer
 

n°1320730
anapajari
s/travail/glanding on hfr/gs;
Posté le 08-03-2006 à 09:51:33  profilanswer
 

bin t'es un peu obliger de parser quoi qu'il arrive :/
moi j'aurais fait un truc dans le genre:

Code :
  1. use strict;
  2. my $param;
  3. my $value;
  4. my %res;
  5. my $a = "param1 = value1_part1 param2 = value2_part1 value2_part2 param3 = value3_part1 value3_part2 value3_part3";
  6. while($a =~ /=/){
  7.   ($param) = ( $a =~ /(.*?) \=/);
  8.   $a =~ s/(.*?) \=//;
  9.   ($value) = ( $a =~ /(.*?) [^ ]* \=/);
  10.   $a =~ s/(.*?) ([^ ]* \=)/$2/;
  11.   $res{$param} = $value;
  12. }
  13. $res{$param} = $a; ### last value is not matched by regex


maintenant il doit bien y avoir 1000 façons de faire la même chose ... comme d'hab en perl en fait!  
T'as vérifié s'il n'y avait pas un module qui faisait ça?

n°1321381
pospos
Posté le 08-03-2006 à 21:54:24  profilanswer
 

et les differentes parties de value tu veux les concaener dans ta valeur de hash? ou les mettre sous forme de reference de liste?

n°1321492
burgergold
5$? va chez l'diable!
Posté le 08-03-2006 à 23:54:53  profilanswer
 

pospos a écrit :

et les differentes parties de value tu veux les concaener dans ta valeur de hash? ou les mettre sous forme de reference de liste?


 
concaténer

n°1321504
pospos
Posté le 09-03-2006 à 00:39:14  profilanswer
 

ce genre de truc ca se regle bien à coup de reverse:
 

Code :
  1. my $a = "param1 = value1_part1 param2 = value2_part1 value2_part2 param3 = value3_part1 value3_part2 value3_part3";
  2. my %hash = map scalar reverse, reverse reverse($a) =~ /(.+?) = (\S+)\s*/g;

Message cité 1 fois
Message édité par pospos le 09-03-2006 à 00:55:49
n°1322772
burgergold
5$? va chez l'diable!
Posté le 10-03-2006 à 14:24:02  profilanswer
 

pospos a écrit :

ce genre de truc ca se regle bien à coup de reverse:
 

Code :
  1. my $a = "param1 = value1_part1 param2 = value2_part1 value2_part2 param3 = value3_part1 value3_part2 value3_part3";
  2. my %hash = map scalar reverse, reverse reverse($a) =~ /(.+?) = (\S+)\s*/g;



 
ca fonctionne énormément bien
me reste plus qu'à le comprendre :D


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

  Comment parser de facon propres ces parametres

 

Sujets relatifs
[PHP5] fonction qui liste les paramètres d'une méthode de classe[XHTML & XML] Peut-on créer ses propres balises ?
[SSL] Envoi de parametres et réceptions[redémarage] facon de faire.
[C++ débutant]Constructeur prenant un nombre de paramètres variable ?Parser
[java] Parser un fichier XMLBouger un div façon thunderbird
Xalan la meilleure façon de transformer plusieurs fichiers[SWiSHmax] paramètres et bouton
Plus de sujets relatifs à : Comment parser de facon propres ces parametres


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