C'est possible ? =)

Signaler
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
-
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
-
Bonjour tout le monde,

Je viens vers vous pour une question que je me pose depuis une petit moment.

J'aimerai savoir si c'est possible d'intégré dans mon exécutable un fichier texte, ou SQL ou autre ( :D ) qui me permettrai d'enregistré des informations.

Exemple :

Un petit programme avec un onglet Réglage, si on change un réglage, on le garde en mémoire même si on reboot l'appli.

Voila ^^
Je vous remercie d'avance pour vos réponses.

Yoan.

13 réponses

Messages postés
15915
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mai 2021
540
Bonsoir,
tu peux bien sûr enregistrer des paramètres dans n'importe quel support de données.
Il y a tout un tas de code sources (dans la section éponyme) sur le sql, le xml, le csv etc....

Mais sinon tu peux aussi te servir de app.config qui est présent (normalement) à l'initialisation de tout projet dans VS.


Whismeril
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
22
Salut,

si tu veux que le fichier soit invisible au déploiement et donc "intégré" dans l'exécutable, il suffit d'importer ce fichier dans le projet en tant que "ressource embarquée" (click droit, propriétés, embeded resource)

On pourra le référencer depuis la manifeste avec le nom :
namespaceAppli.nomFichier.ext

Pour le lire, pas de problème.
Pour le modifier, pas de problème,
mais pour le re-sauvegarder, il faudra utiliser la reflexion.

Voir :
string maRessource = "namespaceAppli.nomFichier.ext";
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(maRessource);


bye...
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Ca serai simplement un fichier texte.
Chaque ligne correspondrai a une donnée :

du style :

//Ecriture du fichier de config
using(StreamWriter erc = new StreamWriter(pathfichier))
{
     erc.WriteLigne(Donnée1);
     erc.WriteLigne(Donnée2);
     etc...
     erc.Close();
}

//Lecture du fichier de config
using(StreamReader lec= new StreamReader(pathfichier))
{
     Donnée1 = lec.ReadLine();
     Donnée2 = lec.ReadLine();
     etc...
     lec.Close();
}
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Je vais essayer la méthode du fichier embarqué, je vous tiens au courant.

Merci de vos réponses ! Si vous avez une idée précise je suis preneur =)
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Bien après avoir essayé la méthode de donnée incorporé, j'ai constaté qu'elles étaient en lecture seule. Il y a peut-être un moment de les modifier ?

Ou une autre méthode ?

Merci de vos réponses
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Bien j'ai enfin trouvé ce que je cherchais !

Il y a une possibilité de rentrer des variables modifiables !

c'est la classe : [namespace].Properties.Setting

On peux rajouter des variables dans cette classe.
Pour les rajouter, il faut aller dans "Explorateur de solution" => "Properties" => "Settings.settings"
Ces variables sont ensuite modifiable.

Exemple : J'ai 1 variable string appelé "Serveur" initialisé à "AUCUN";

Il faut d'abord initialiser la variable de configuration :

TestSurSqlSDF.Properties.Settings maConfig = new TestSurSqlSDF.Properties.Settings();

//Lecture de config
tbServeur.Text = maConfig.Serveur;

//Ecriture de config
maConfig.Serveur = tbServeur.Text;

//Pour enregistré définitivement la modification , il faut exécuter l'une des commande de "maConfig" :
maConfig.Save();
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Up!

Petit soucis rencontré avec cette méthode :

Si on déplace l'exécutable, les variables sont initialisées.

Exemple :

Les variables sont initialisées en X

On passe l'exécutable dans le dossier A, on règle la config en Y.
On relance le programme, la config est bien en Y.
On quitte le programme.

On déplace l'exécutable dans un dossier B, on lance le programme.
La config est remise à X.
On règle la config en Z.
On relance le programme, la config est bien en Z.
On quitte le programme.

On replace l’exécutable dans le dossier A, on lance le programme. La config est en Y.

En résumé : Chaque emplacement du fichier d’exécutable correspond A UNE CONFIG.

J'en viens a ma question : Comment faire ( si quelqu'un connait cette méthode ) de garder la config, peut importe le dossier ?

Je vous remercie encore pour vos réponses
Messages postés
15915
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mai 2021
540
Bonjour,

selon ton besoin il y a plusieurs soltuions,

1 la config n'a pas besoin d'être sauvergardée dans un fichier "sécurisé": tu te crées un fichier xml ou csv dans le répertoire d'installation, que tu déplaces en même temps que l'exécutable. (Ce que je fais la plupart du temps)

2 la config n'a pas besoin d'être sauvergardée dans un fichier "sécurisé", mais tu ne veux pas avoir à déplacer le fichier en même temps que l'exécutable; tu places un fichier xml ou csv dans "Mes Documents" (par exemple) et dans l'appli le chemin est inscrit complet (pas de relatif)

3 la config n'a pas besoin d'être sauvegardéee dans un fichier "sécurisé", mis pour autant tu ne souhaite pas que des utilisateurs peu expérimentés y touche: tu peux utiliser la base de registre.


4 tu veux que la config soit protégée par un mot de passe: tu crées une base de données (dans le reépertoire ou ailleurs)
Whismeril
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Si il me fallait l'enregistré dans un fichier, sa serai un fichier sécurité ( présence de mot de passe IMPORTANT )
Ensuite, j'aimerai comme je l'ai indiqué, intégré cette "base" dans l'exécutable.

Pour cela, j'ai trouvé la solution du "TestSurSqlSDF.Properties.Settings.Default" ou l'on peux intégrer des variables.

Le seule soucis , c'est qu'en déplaçant l’exécutable, les variables sont initialisées.

Donc cette solution réponds a moitie à mon problème.

Ce que j'aurai vraiment aimé, c'est d'intégrer un fichier texte dans l'exécutable en lui même avec la possibilité de modifier.

Seulement, j'ai remarqué qu'en intégrant un fichier texte. Il est impossible ( d'après mes essais+recherche ) de le modifier.

Merci de vos réponses.
Messages postés
15915
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mai 2021
540
Au risque de me répéter:
4 tu veux que la config soit protégée par un mot de passe: tu crées une base de données (dans le reépertoire ou ailleurs)


Il y a tout plein de codes dans la section qui va bien pour la gestion de base de données


Whismeril
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Ensuite, j'aimerai comme je l'ai indiqué, intégré cette "base" dans l'exécutable
.


J'aimerai savoir si c'est possible d'intégré dans mon exécutable
un fichier texte, ou SQL ou autre ( :D ) qui me permettrai d'enregistré des informations.


Mon but est vraiment d'avoir QU'UN SEUL FICHIER .exe
Après si vous avez une solution pour "INTEGRER" cette base ( J'utiliserai une base SQL ) dans mon fichier exécutable...
Je suis preneur.

Merci de votre aide.
Messages postés
15915
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mai 2021
540
Au temps pour moi.
A partir app.config et le fichier embarqué je ne vois pas.


Whismeril
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
J'utilise app.config , seul problème, a chaque fois que l'on déplace l'exécutable. les variables s'initialise.