Initialisation variable par le code dans ma classe form :) [Résolu]

Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
- - Dernière réponse : Foxnono06
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
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 ;)
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Whismeril
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
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
Commenter la réponse de Whismeril
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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é!
Commenter la réponse de Foxnono06
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
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
Commenter la réponse de Whismeril
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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 !
Commenter la réponse de Foxnono06
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
36
0
Merci
Une petite recherche et paf : Lien

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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 ...
Commenter la réponse de Foxnono06
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
Bonjour dans ce cas, écrit un fichier à part.

Whismeril
Commenter la réponse de Whismeril
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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 ...
Commenter la réponse de Foxnono06
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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
Commenter la réponse de Foxnono06
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
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
Commenter la réponse de Whismeril
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
36
0
Merci
"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é. -
Commenter la réponse de krimog
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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.
Commenter la réponse de Foxnono06
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
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 ...
Commenter la réponse de Foxnono06
Messages postés
18
Date d'inscription
mercredi 9 septembre 2009
Dernière intervention
18 mai 2013
0
Merci
Le chemin avec @ ne onctionne pas ... je ne sais pas pourquoi mais Startup nickel ! Merci encore ;) Résolu !
Commenter la réponse de Foxnono06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.