iniexample.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "iniparser.h"
  5. void create_example_ini_file(void);
  6. int parse_ini_file(char * ini_name);
  7. int main(int argc, char * argv[])
  8. {
  9. int status ;
  10. if (argc<2) {
  11. create_example_ini_file();
  12. status = parse_ini_file("example.ini");
  13. } else {
  14. status = parse_ini_file(argv[1]);
  15. }
  16. return status ;
  17. }
  18. void create_example_ini_file(void)
  19. {
  20. FILE * ini ;
  21. if ((ini=fopen("example.ini", "w"))==NULL) {
  22. fprintf(stderr, "iniparser: cannot create example.ini\n");
  23. return ;
  24. }
  25. fprintf(ini,
  26. "#\n"
  27. "# This is an example of ini file\n"
  28. "#\n"
  29. "\n"
  30. "[Pizza]\n"
  31. "\n"
  32. "Ham = yes ;\n"
  33. "Mushrooms = TRUE ;\n"
  34. "Capres = 0 ;\n"
  35. "Cheese = Non ;\n"
  36. "\n"
  37. "\n"
  38. "[Wine]\n"
  39. "\n"
  40. "Grape = Cabernet Sauvignon ;\n"
  41. "Year = 1989 ;\n"
  42. "Country = Spain ;\n"
  43. "Alcohol = 12.5 ;\n"
  44. "\n");
  45. fclose(ini);
  46. }
  47. int parse_ini_file(char * ini_name)
  48. {
  49. dictionary * ini ;
  50. /* Some temporary variables to hold query results */
  51. int b ;
  52. int i ;
  53. double d ;
  54. const char * s ;
  55. ini = iniparser_load(ini_name);
  56. if (ini==NULL) {
  57. fprintf(stderr, "cannot parse file: %s\n", ini_name);
  58. return -1 ;
  59. }
  60. iniparser_dump(ini, stderr);
  61. /* Get pizza attributes */
  62. printf("Pizza:\n");
  63. b = iniparser_getboolean(ini, "pizza:ham", -1);
  64. printf("Ham: [%d]\n", b);
  65. b = iniparser_getboolean(ini, "pizza:mushrooms", -1);
  66. printf("Mushrooms: [%d]\n", b);
  67. b = iniparser_getboolean(ini, "pizza:capres", -1);
  68. printf("Capres: [%d]\n", b);
  69. b = iniparser_getboolean(ini, "pizza:cheese", -1);
  70. printf("Cheese: [%d]\n", b);
  71. /* Get wine attributes */
  72. printf("Wine:\n");
  73. s = iniparser_getstring(ini, "wine:grape", NULL);
  74. printf("Grape: [%s]\n", s ? s : "UNDEF");
  75. i = iniparser_getint(ini, "wine:year", -1);
  76. printf("Year: [%d]\n", i);
  77. s = iniparser_getstring(ini, "wine:country", NULL);
  78. printf("Country: [%s]\n", s ? s : "UNDEF");
  79. d = iniparser_getdouble(ini, "wine:alcohol", -1.0);
  80. printf("Alcohol: [%g]\n", d);
  81. iniparser_freedict(ini);
  82. return 0 ;
  83. }