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

  FORUM HardWare.fr
  Programmation
  C

  HELP! Parser un fichier de conf et renvoyer vers struct

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

HELP! Parser un fichier de conf et renvoyer vers struct

n°1519572
pinpin06
HU! HO!
Posté le 25-02-2007 à 11:29:58  profilanswer
 

Bonjour,
 
je suis pas programmeur dans l ame car faisant du reseau, mais aujourdhui, exceptionnellement j ai besoin de trouver une fonction en C qui parse un fichier (avec awk ou une autre facon, peu importe le tout cest que ca marche lol) et qui renvoie certains champs dans des variables. Dont un champs precisement (qui est l adresse l'IP) que je dois renvoyer vers une structure qui correspond en fait à l a structure de la socket (en TCP).
 
la personne qui connait un programme type ou une URL ou trouver ca m aidera grandement !!!! parce que je recherche comme un fou et j ai pas trouvé et je n ai pas le temps de devenir un expert en C, c est surtout ca le probleme.
 
je remercie tous ceux qui pourront eventuellement m aider.
 


---------------
collectionneur averti !! Accepte vos vieilles consoles non utilisées ^^        
mood
Publicité
Posté le 25-02-2007 à 11:29:58  profilanswer
 

n°1519574
Joel F
Real men use unique_ptr
Posté le 25-02-2007 à 11:47:07  profilanswer
 

man getopt

n°1519593
Sve@r
Posté le 25-02-2007 à 13:05:49  profilanswer
 

pinpin06 a écrit :

Bonjour,
 
je suis pas programmeur dans l ame car faisant du reseau, mais aujourdhui, exceptionnellement j ai besoin de trouver une fonction en C qui parse un fichier (avec awk ou une autre facon, peu importe le tout cest que ca marche lol) et qui renvoie certains champs dans des variables. Dont un champs precisement (qui est l adresse l'IP) que je dois renvoyer vers une structure qui correspond en fait à l a structure de la socket (en TCP).
 
la personne qui connait un programme type ou une URL ou trouver ca m aidera grandement !!!! parce que je recherche comme un fou et j ai pas trouvé et je n ai pas le temps de devenir un expert en C, c est surtout ca le probleme.
 
je remercie tous ceux qui pourront eventuellement m aider.


 
Bref tu veux une fonction qui fasse tout tout seul => Faut que tu te la fasses toi-même
1) tu ouvres ton fichier de conf => fopen()
2) tu lis ton fichier de conf ligne par ligne => fgets()
3) sur ta ligne, tu recherches le caractère qui sépare le nom de sa valeur (en général un fichier de conf est écrit dans le style "nom=valeur" donc tu cherches le "=" ) => strchr() => ça te renvoie un pointeur sur l'octet qui contient ce "=" (que je vais nommer "info" pour plus de simplicité)
4) tu mets cet octet à 0 et tu positionnes "info" sur l'octet suivant (il suffit de faire "info++" ) => tu te trouves maintenant avec 2 variables: "ligne" qui contient "nom" (et qui s'arrête au "=" car c'est devenu "0" ) et ton pointeur "info" qui contient la valeur du nom
5) tu compares "ligne" avec la chaine que tu recherches => strcmp() et si c'est bon tu recopies l'info qui est pointée par "info" => strcpy()
6) quand toutes les lignes ont été lues, tu fermes le fichier => fclose()
 
Tu peux améliorer l'algo en ignorant les commentaires : en général un commentaire dans un fichier de conf commence par "#" donc tu peux commencer par chercher ce "#" dans ta ligne (strchr()) et remplacer ce "#" par 0 => ta ligne s'arrêtera automatiquement juste avant le commentaire


Message édité par Sve@r le 25-02-2007 à 13:06:49

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1519612
pinpin06
HU! HO!
Posté le 25-02-2007 à 13:53:40  profilanswer
 

merci pour toutes ces infos c est sympa. comment je fais pour stocker l' info de l adresse IP (recuperee dans le fichier de conf) dans une structure ( celle pour ouvrir le socket) ... desolee de ces questions bateuax mais le c et moi c fait 2... je bosse plutto sur des routers/switches/firewall :(

n°1519630
Sve@r
Posté le 25-02-2007 à 15:01:39  profilanswer
 

pinpin06 a écrit :

merci pour toutes ces infos c est sympa. comment je fais pour stocker l' info de l adresse IP (recuperee dans le fichier de conf) dans une structure ( celle pour ouvrir le socket) ... desolee de ces questions bateuax mais le c et moi c fait 2... je bosse plutto sur des routers/switches/firewall :(


 
Ben tu récupères une chaîne de caractères style "160.192.10.5". Ensuite ça dépend de comment est faite ta structure. Je présume qu'elle doit avoir 4 champs donc
1) il faut que tu parses ta chaîne sur le caractère "." et que tu stockes 3 pointeurs diférents sur chaque début de chiffre et que tu remplaces chaque "." par un 0 donc tu transformes ta chaîne "160.192.10.5" en 4 chaînes "160", "192", "10", "5"
2) tu transformes chaque chaîne en nombre (strtoul() ou sscanf()) que tu transfères dans l'octet qui va bien de ta structure


Message édité par Sve@r le 25-02-2007 à 16:08:19

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1519861
pinpin06
HU! HO!
Posté le 26-02-2007 à 10:35:46  profilanswer
 

merci merci :) je vois a peu pret, je vais essayer de mettre tout ca en place maintenant. merci pour ts les explications !


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

  HELP! Parser un fichier de conf et renvoyer vers struct

 

Sujets relatifs
Parser un tableau associatif complexe en JSSynchro table sql server et fichier xls
Envoi de fichier, tomcatPage hmtl vers Message Outlook
Parser un html et récuperer une valeur...
upload fichier (application serveur?)Une commande shell unix pour faire un POST Http d'un fichier ?
Comment modifier le contenu dun fichier avec ofstream ou autre?recherche de script permettant de récupérer le contenu d'un fichier
Plus de sujets relatifs à : HELP! Parser un fichier de conf et renvoyer vers struct


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