C'est possible ? =)

Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 - 25 avril 2013 à 11:07
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 - 2 mai 2013 à 10:06
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

Whismeril Messages postés 19023 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
25 avril 2013 à 19:42
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
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
25 avril 2013 à 21:32
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...
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
25 avril 2013 à 22:41
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();
}
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
25 avril 2013 à 22:43
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 =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
26 avril 2013 à 10:13
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
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
26 avril 2013 à 10:58
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();
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
29 avril 2013 à 09:49
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
0
Whismeril Messages postés 19023 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
29 avril 2013 à 11:28
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
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
29 avril 2013 à 15:03
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.
0
Whismeril Messages postés 19023 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
29 avril 2013 à 17:46
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
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
30 avril 2013 à 16:09
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.
0
Whismeril Messages postés 19023 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
30 avril 2013 à 19:01
Au temps pour moi.
A partir app.config et le fichier embarqué je ne vois pas.


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