Bonjour,

Je debute en C, et un des premiers exercice que je me suis fixe est d'ecrire une fonction qui me recupere une valeur d'un fichier de conf et me la retourne sous forme de string.

Le fichier de conf est du type :
name1=value1
name2=value2

Je voulais savoir si ce code vous paraissait propre, comment je pourrai l'ameliorer, et ce que je dois a tout prix eviter de faire.

Par exemple ceci ne me plait pas vraiment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sValue = sName+strlen(sName)+1;
Merci beaucoup de vos reactions.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
char *getconf(char *name)
{
        FILE *fichier;
        char sLine[1024];
        char *sName;
        char *sValue;
 
        // Ouvre le fichier en lecture seule
        fichier = fopen(CONFFILE, "r");
        if (fichier == 0)
        {
                printf("Erreur : Fichier de configuration %s introuvable.", CONFFILE);
                exit(1);
        }
 
        // On boucle ligne par ligne jusqu'a la fin du fichier
        while(NULL != fgets(sLine, (int) sizeof sLine, fichier))
        {
                if (strchr(sLine, '=') != NULL)
                {
                        sName = sLine;
                        sprintf(strchr(sName, '='), "%s", "\0");
                        if (strcmp(sName, name) == 0)
                        {
                                sValue = sName+strlen(sName)+1;
                                return(sValue);
                        } else {
                                continue;
                        }
                } else {
                        continue;
                }
        }
        sValue = "";
        return(sValue);
}