Projet en C: cree un fichier de configuration
poparnassus
Messages postés
426
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je developpe en C avec codeblock, et je suis sur les sockets, du coup je voudrais crée un fichier qui soit configurable pour les adresse ip , port etc;
j'ai trouver ca comme info mais cest avec visual
https://nico-pyright.developpez.com/tutoriel/vc2005/configurationsectioncsharp/
Comment on procede avec codeblock ?
je developpe en C avec codeblock, et je suis sur les sockets, du coup je voudrais crée un fichier qui soit configurable pour les adresse ip , port etc;
j'ai trouver ca comme info mais cest avec visual
https://nico-pyright.developpez.com/tutoriel/vc2005/configurationsectioncsharp/
Comment on procede avec codeblock ?
A voir également:
- Projet en C: cree un fichier de configuration
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Musique projet x - Forum Musique / Radio / Clip
- Différence entre pmo et chef de projet ✓ - Forum Programmation
- Wbs projet - Télécharger - Gestion de projets
1 réponse
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
Je te remercie Dal , tu as toujours réponse à tout !!
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 :
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