Pour la lecture d'un fichier dans un buffer, t'as le lien que je t'ai donné.
Sinon pour traiter le buffer, ce sont des opérations de base sur les pointeurs.
On parcours la chaine avec un pointeur en testant si on tombe sur un [. Ensuite, on saute les caractères d'espacement (espace, tab etc.) puis on compare le mot.
On peut procéder de la façon suivante pour comparer:
On extrait le mot lettre par lettre dans un petit buffer secondaire (300 octets devrait être plus que suffisant) jusqu'à tomber sur un espace ou un ] ou autre.
Puis on effectue les strcmp nécessaire sur ce buffer temporaire.
Une fois le nom du paramètre validé, on saute tous les espaces et le = puis on extrait sa valeur. On peut procéder de la même façon qu'avec le nom de paramètre.
Maintenant, faut savoir ce que représente ces valeurs. Est-ce des nombres ?
[pouet] = 12345
des "chaine" ?
[pouet] = pouetpouet
Est-ce que ça dépend des paramètres ([pouet] prend des nombres, [pouetpouet] prend des chaines) ou alors est-ce complètement arbitraire ?
Soit dit en passent, un paramètre contenant une "chaine" peut aussi être comme suit:
[param] = 12345
Tout dépend de comment tu souhaites utiliser les valeurs.
Si tes paramètres on chacun un type fixe de donné, on peut effectuer la conversion (si nécessaire) à même le buffer d'extraction (donc avant de stocker la valeur finale dans la structure). Cependant, si tes paramètres peuvent prendre n'importe quoi, là, faudra stocker sans conversion. Ta structure devra donc pouvoir stocker des chaines de caractères.
C++ (@++)