Initialisation variable par le code dans ma classe form :)

Résolu
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013 - 16 mai 2013 à 10:09
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013 - 18 mai 2013 à 12:56
Boujour,

Une question peut être stupide, mais je suis vraiment novice ... Enfin presque !

Est il possible lors de l'exécution de mon MDI, de changer l'instance d'une variable dans la classe de mon MDI ? je m'explique par l'exemple :

namespace Maquette
{
    public partial class Connect : Form
    {
        public string Source =      "C:/Users/usuario/Documents/Pfe/Pfe/Programme/Maquette/Maquette/data.mdb";
        public Connect()
        {
//ici reinstancer ma variable pour qu'à la prochaine exécution par exemple public string Source = "C:/Users/usuario/Documents";
        }


Merci ;)

15 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
18 mai 2013 à 12:10
Normalement

string chemin = @"Rep1\test.txt";

pointera vers test.txt dans le dossier Rep1 contenu dans le même répertoire que ton exe.
Si tu as un doute il y a Application.StartUpPath qui retourne le chemin du répertoire de l'ex.

Whismeril
3
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
16 mai 2013 à 12:00
Bonjour, si l'idée est que la première instance de ce formulaire ouvre
"C:/Users/usuario/Documents/Pfe/Pfe/Programme/Maquette/Maquette/data.mdb";
et que la deuxième ouvre "C:/Users/usuario/Documents".

Tu peux utiliser une variable de classe, tu l'inities avec le premier string et dès que tu as fait le traitement tu lui affectes le second.
Pour déclarer une variable de classe, il suffit de la déclarer static:

Cet exemple compte le nombre de personnes crées:

class Personne
    {
      private string nom;
      private string prenom;
      private int age;
      private static int nbPersonne = 0;

      public ClsPersonne(string nom, string prenom, int age)
      {
        this.nom = nom;
        this.prenom = prenom;
        this.age = age;
        nbPersonne++;
      }

....
Personne p1 = new Personne("Martin","Henri",32);
      p2.Affiche();

Personne p2 = new Personne("Dupont","Pierre",27);
      p2.Affiche();
Console.WriteLine("nous avons crée {0} personnes",Personne.GetNbPersonne());






Whismeril
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
16 mai 2013 à 12:21
Merci Whismeril,

mais l'idée est plutôt de changer la valeur de la variable en dur.
C'est à dire que lorsque s'ouvre le prog. pour la 1ere fois la valeur vaut
Source = "C:/Users/usuario/Documents/Pfe/Pfe/Programme/Maquette/Maquette/data.mdb";
et que si je decide de changer de chemin d'acces a la base de données, le prog garde en mémoire le nouveau chemin d'accès et change la valeur de la variable pour qu'à la prochaine ouverture du programme je n'ai pas besoin de changer le chemin d'accès.

Merci de ta réponse ;) et désolé si je me suis mal exprimé!
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
16 mai 2013 à 18:10
Ha dans ce cas il faut stocker ton info quelque part, il y a le fichier de configuration : app.confing de mémoire, sinon un fichier XML, csv, une base de données, le registre.


Whismeril
0

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

Posez votre question
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
16 mai 2013 à 23:54
Merci pour ta réponse ;) J'avance !
Seulement je reste un peu perdu, sans rentrer dans les détails, j'ai inséré une paire key value dans la balise configuration de mon fichier config. Quand j'essaye d'y accéder via ConfigurationManager.AppSetting["Ma_clé"], j'arrive à récupérer la valeur. Mais j'aimerai mettre à jour cette valeur et lorsque j'essaye avec les commandes remove puis add, il me dit que le fichier config est en lecture seule ...
Aurais tu une solution ? merci !
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
17 mai 2013 à 10:39
Une petite recherche et paf : Lien

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
17 mai 2013 à 21:39
Merci ....
Mais cela ne résoud pas mon problème car la clé est modifiée uniquement au niveau du fichier app.config du répertoire debug.
J'aurais besoin de le modifier dans ma solution ...
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
18 mai 2013 à 07:19
Bonjour dans ce cas, écrit un fichier à part.

Whismeril
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
18 mai 2013 à 10:27
Merci ....
Mais cela ne résoud pas mon problème car la clé est modifiée uniquement au niveau du fichier app.config du répertoire debug.
J'aurais besoin de le modifier dans ma solution ...
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
18 mai 2013 à 10:32
Je ne sais pas pourquoi ca má posté le même message. Merci de ta
réponse whismeril, j'avoue ne pas savoir ce à quoi tu te réfère ... mais je vais chercher.
Merci
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
18 mai 2013 à 10:49
ET bien, comme je te l'ai indiqué dans mon deuxième message, tu peux te faire un fichier texte, un csv, un xml... dans lequel tu enregistre ton chemin. Ce fichier tu peux l'enregistrer dans le répertoire de ton application (pendant test tes tests il sera dans le bin, comme app.config).

Tu peux aussi créer une clé de base de registre.


Whismeril
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
18 mai 2013 à 11:21
"J'aurais besoin de le modifier dans ma solution".

Non ! En théorie, quand tu a développé un programme, il ne doit plus du tout être lié à la solution. Les fichiers de la solution ne doivent pas être modifiés au runtime (lors de l'exécution de ton programme).

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
18 mai 2013 à 11:49
Ok je vais mettre en résolu, car je me rend compte que j'ai les éléments pour poursuivre. Je vais tester avec le fichier text.

@Krimog : J'ai tester en utilisant le exe généré de modifier app.config, sans résultat ... Essayons avec le fichier text ^^

Merci à vous 2.
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
18 mai 2013 à 11:58
Ah, avant de mettre en résolu, quelqu'un pourrait il m'indiqué comment utiliser un chemin relatif à la racine de mon projet , afin qu'ilsoit valable dans l'exe généré et le debug.
J'ai essayé plusieurs solutions sans succès ...
0
Foxnono06 Messages postés 18 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 18 mai 2013
18 mai 2013 à 12:56
Le chemin avec @ ne onctionne pas ... je ne sais pas pourquoi mais Startup nickel ! Merci encore ;) Résolu !
0
Rejoignez-nous