Parse d'un fichier de configuration [PERL] - Perl - Programmation
Marsh Posté le 02-06-2006 à 09:35:25
est-ce que c'est pas un peu dangereux de te baser uniquement sur les commentaires ? (étant donné que les commentaires ne sont pas obligatoires, tu pourrais te retrouver avec un bloc de définition de PC_xx non commenté ou commenté sous une autre forme que celle que tu attends)
sinon, comment tu veux procéder après ? tu veux utiliser des hashmaps pour stocker les valeurs lues ?
Pour ton problème de détection des PC_xx, je procèderais ainsi :
Code :
|
normalement, tu devrais éviter les espaces indésirés...
Marsh Posté le 02-06-2006 à 10:32:23
Il y a pas mal de modeuls de parsing de fichier de configuration sur cpan (search.cpan.org), chacun specialisé dans tel ou tel format.
Il existe aussi un parser "automatique" qui pourrait bien marcher directement pour toi: Config::Auto
http://search.cpan.org/~cosimo/Config-Auto/
Marsh Posté le 04-06-2006 à 13:35:29
franceso a écrit : est-ce que c'est pas un peu dangereux de te baser uniquement sur les commentaires ? |
Ce n'est pas faux !
J'ai revu ma méthode pour extraire mes données :
1/ Je met le fichier dans un tableau
2/ Sur le tableau, j'utilise les lignes commençant par user et j'extrait les informations.
3/ J'affiche pour vérifier le résultat
cela fonctionne à priori sur mon fichier, je n'ai pas encore eu d'erreur lors de l'execution.
mais je suis prenneur de tous les commentaires
Code :
|
Marsh Posté le 02-06-2006 à 08:50:34
Bonjour,
Je souhaite extraite d'un fichier de configuration quelques lignes, jusqu'à la rien d'extraordinaire, sauf peut être pour un novice !
Voici une partie de mon fichier de configuration :
# Config File
#
# Create and configure extension PC
#
extension PC set lang=FR
extension PC set timeoffset=7200
...
#
# Create and configure user PC_10
#
user PC_10 set addr=10.10.10.10
user PC_10 set dhcp=disable
...
user PC_10 set ping-timeout=300
#
# Create and configure user PC_11
#
...
Je souhaite récupérer uniquement les éléments user PC_10, user PC_11....
Vu que je ne connais pas le nombre de PC avant l'exécution du script, je commence par selectionner les lignes de commentaires :
Le résultat est alors :
PC_10 PC_11 PC_12
Ce qui me gène dans ce résultat, c'est qu'entre chaque nom des PC, il y a un double espace !
Je n'arrive pas à savoir d'où il provient !
Ensuite, je pense que je n'aurai plus qu'a relire @PC, et extraire les données comme addr, dhcp, ... , ping-timeout.
Mais j'aimerai un avis avant de continuer, est-ce que je ne suis pas entrein de créer une usine à gaz ?