source: BAORadio/libindi/v1.0.1/BAOControl/filetools.h @ 629

Last change on this file since 629 was 502, checked in by frichard, 14 years ago

-BAOControl : petite interface permettant de contrôler les antennes via le pilote indi_BAO
-Le pilote indi_BAO utilise désormais indilib v 0.7

File size: 3.7 KB
Line 
1/*******************************************************
2                          filetools.h
3                          -----------
4    begin                : Wed Dec 13 2000
5    copyright            : (C) 2000 by Sylvain Le Petit
6    email                : sylvainlepetit@wanadoo.fr
7 *******************************************************/
8#include <stdio.h>
9#include <string.h>
10#include "exception.h"
11/* Structures de donnees */
12
13
14typedef struct section
15{
16  char *name;
17  struct key *fils;
18  struct ini *parent;
19  struct section *prev;
20  struct section *next;
21
22}
23SECTION;
24
25typedef struct key
26{
27  char *name;
28  char *value;
29  SECTION *parent;
30  struct key *prev;
31  struct key *next;
32}
33KEY;
34
35typedef struct ini
36{
37  char *fileName;
38  SECTION *fils;
39}
40INI;
41
42/* declaration des prototypes*/
43 /*PUBLIC*/ int jumpline (int nbline, FILE * pfile);
44int readline (FILE * pfile, char *tab);
45/*************************************************************************
46gestion des fichier .ini
47**************************************************************************/
48
49int readINI (char *section, char *key, char **ppStr, char *fileName);
50/*******************************************************************************
51 lire une valeur
52
53section: nom de la section
54key : nom de la cle
55ppStr: adresse du pointeur sur la valeur de la cle retour, NULL si pas trouve, memoire allouee dans la fonction
56fileName : nom du fichier contenant les cles, pas forcement xxx.ini c'est pas obligatoire
57
58**********************************************************************************/
59
60
61char *writeINI (char *section, char *key, char *pKeyValue, char *fileName);
62/*******************************************************************************
63  ecrire une cle avec sa valeur, que se soit une nouvelle cle ou un mise a jour
64c'est pareil
65
66section: nom de la section
67key : nom de la cle
68pKeyValue: valeur de la cle, evitez de mettre NULL pas encore tester ce cas limite
69fileName : nom du fichier contenant les cles, pas forcement xxx.ini c'est pas obligatoire
70
71 *******************************************************************************/
72
73int delINI (char *sectionName, char *pKeyName, char **ppStr, char *fileName);
74/*************************************************************************/
75/* permet de supprimer une cle ou une section complete                   */
76/* >suppression d'une cle, donner le nomde la section et le nom de la cle*/
77/*  si la section est vide elle est supprimee                            */
78/* >suppression d'une section complete, mettre NULL comme nom de cle     */
79/*************************************************************************/
80
81void printINI (char *fileName);
82/*****************************************************************/
83/*  permet d'afficher le contenu du fichier .ini, seulement les: */
84/*  [section]                                                    */
85/*  cle=valeur                                                   */
86/*****************************************************************/
87
88
89
90/*PRIVATE: ne pas utiliser directement*/
91int _saveINI (INI * ini);
92INI *_loadINI (char *fileName);
93void _printINI (INI * pIni);
94void _printSECTION (SECTION * pSection);
95void _printKEY (KEY * pKey);
96KEY *_newKEY (char *pKeyName, char *pKeyValue);
97SECTION *_newSECTION (char *pSectionName);
98SECTION *_findSECTION (INI * pIni, char *pSectionName);
99KEY *_findKEY (SECTION * pSection, char *pKeyName);
100KEY *_lastKEY (SECTION * pSection);
101SECTION *_lastSECTION (INI * pIni);
102SECTION *_addSECTION (INI * pIni, SECTION * pSection);
103KEY *_addKEY (SECTION * pSection, KEY * pKey);
104int _isKey (char *str);
105void *m_malloc (size_t size);   /*renvoi l'exception ERR_MALLOC */
106void _freeKEY (KEY * pKey);
107void _freeSECTION (SECTION * pSection);
108int _delKEY (KEY * pKey);
109int _delSECTION (SECTION * pSection);
Note: See TracBrowser for help on using the repository browser.