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

Last change on this file since 674 was 502, checked in by frichard, 15 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.