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