1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
   |  
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main()
{
 
  int const toto= get_setting_key("test.ini" , "option1" , "toto");
  printf ("\n\n\n\nplafond est : %s ",toto );
  int const tata = get_setting_key("test.ini" , "option2" , "tata");
  printf ("\nmaxCons est : %s ",tata);
 
  printf ("\n.......... apres tout traitement  ");
  printf ("\n\n\n\nplafond est : %s ",toto);
  printf ("\nmaxCons est : %s ",tata);
  }
 
 
int get_setting_key (const char *filename,
                     const char *key,
                     const char *sub_key)
{
 
   char s_line[256];
   int key_exist = 0;
 
   FILE *p_file = NULL;
 
   /* On test la validite des arguments */
   if (filename != NULL && key != NULL && sub_key != NULL)
   {
           /* Ouverture du fichier de configuration */
      p_file = fopen (filename, "r");
 
      if (p_file == NULL)
      {
         fprintf (stderr, "Erreur: "
                          "Impossible d'ouvrir le fichier specifie !\n");
 
	return 0 ;
      }
 
      while (fgets (s_line, sizeof (s_line), p_file))
      {
         char *p_adr = NULL;
         /* Recherche de la section */
         if (key_exist == 0 && s_line[0] == '[')
         {
            p_adr = strtok (s_line, "[]");
            printf(" \n la clé est : %s \n",p_adr);    
            if (p_adr != NULL)
            {
               if (strcmp (p_adr, key) == 0)
               {
                  printf(" \n ---- la cle existe ds if  %s",p_adr); 
		  key_exist = 1;
 
               }
            }
         }
         else if (key_exist == 1)
         {
            p_adr = strtok (s_line, "=");
            if (p_adr != NULL)
            {  
               if (strcmp (p_adr, sub_key) == 0)
               {
	          printf("\n ... subkey existe ...  \n"); 
 
                  /* On recupere l'enregistrement de la cle */
                  p_adr = strtok (NULL, "=");
                  printf(" ---- valeur tag  %s \n", p_adr);  
		  return (int)p_adr ;
 
               }
            }
         }
      }
   }
   else
   {
      fprintf (stderr, "Erreur: "
                       "Arguments manquants !\n");
   }
 
 
   /* Fermeture du fichier */
   fclose (p_file);
 
 
   return 0;
} | 
Partager