Projet en C: cree un fichier de configuration
Fermé
poparnassus
Messages postés
426
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
30 avril 2017 à 04:21
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 5 mai 2017 à 09:40
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 5 mai 2017 à 09:40
A voir également:
- Projet en C: cree un fichier de configuration
- Filigrane projet - Guide
- Film projet x a telecharger gratuitement - Télécharger - Outils professionnels
- Exemple d'un projet déjà monté - Forum Programmation
- Gant projet - Télécharger - Gestion de projets
- Musique projet x - Forum Musique / Radio / Clip
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 099
2 mai 2017 à 10:16
2 mai 2017 à 10:16
Salut poparnassus,
Si c'est pour ton projet utilisant la SDL, tu peux installer SDL_Config et créer un fichier au format .ini
http://koshmaar.linuxpl.info/sdl_config/news.php
https://fr.wikipedia.org/wiki/Fichier_INI
cela te donnera un code portable sur les plateformes supportées par la SDL
Si tu fais du code spécifique Windows, tu peux aussi utiliser GetPrivateProfileString : https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring?redirectedfrom=MSDN
Les fichiers .ini sont les ancêtres de la base de registre sous Windows.
Le format est assez simple, et si tu n'as pas des besoins complexes, tu peux même parser toi même le fichier.
Dal
Si c'est pour ton projet utilisant la SDL, tu peux installer SDL_Config et créer un fichier au format .ini
http://koshmaar.linuxpl.info/sdl_config/news.php
https://fr.wikipedia.org/wiki/Fichier_INI
cela te donnera un code portable sur les plateformes supportées par la SDL
Si tu fais du code spécifique Windows, tu peux aussi utiliser GetPrivateProfileString : https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring?redirectedfrom=MSDN
Les fichiers .ini sont les ancêtres de la base de registre sous Windows.
Le format est assez simple, et si tu n'as pas des besoins complexes, tu peux même parser toi même le fichier.
Dal
4 mai 2017 à 23:31
Je te remercie Dal , tu as toujours réponse à tout !!
4 mai 2017 à 23:38
FILE *fopen(constchar*filename,constchar*mode)
int fscanf(FILE *stream,constchar*format,...) :
par exemple un fichier texte nommé exemple et situé dans le même répertoire que ton exécutable qui contient :
Modifié le 5 mai 2017 à 09:46
Ecrire sous forme de texte, avec un format simple est ce que je te proposais avec un format connu et des parsers existants, ou ton propre parser, et, bien sûr, tu peux faire ton propre format encore plus simplifié.
Les humains ont souvent besoin de commentaires, tu peux par exemple déterminer que les lignes vides, ou commençant par un ";" (à la Windows) ou un "#" (à la Unix) sont ignorées, et contiennent des commentaires, ou que si ces caractères sont rencontrés dans une ligne ce qui suit ce caractère jusqu'à la fin de la ligne est un commentaire.
Sur le code lui-même, en dehors du fait que le prototype est incorrect et que le est manquant, le code n'est pas très robuste, et il faudrait complexifier un peu pour faire une gestion d'erreurs.
J'utiliserais pour lire une ligne, et ensuite je parserais la ligne avec pour vérifier son format et l'interpréter. Si la ligne est plus longue que tampon de lecture (à ce moment là le dernier caractère du tampon ne sera pas '\n'), tu pourras aussi décider quoi faire de ce que tu as lu et du reste de la ligne, voire considérer de tout ignorer et considérer qu'une ligne plus longue qu'une certaine taille est une erreur de format (sauf si c'est un commentaire qui occasionne cela).
Les parsers déjà faits doivent normalement gérer toutes ces situations..., et gèrent non seulement la lecture, mais aussi l'écriture. A toi de voir :-)
Sinon, parmi les formats populaires, aujourd'hui la mode est plutôt à YAML, qui a libyaml pour le C. C'est peut-être un tank pour battre une mouche dans ton cas, mais c'est vraiment sympa à utiliser et très lisible même pour représenter des choses complexes.
Dal