Fichier config

Résolu
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 4 mai 2007 à 09:34
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 10 mai 2007 à 16:00
Salut,j'ai une fonction de configuration qui donne les ports disponibles::

private
void Configure_port()
{
//obtention une liste de noms de ports série valides...
string[] ports =
SerialPort.GetPortNames();

//MessageBox.Show("The following serial ports were found:");
this.comboBox1.DataSource = ports;

if (ports.Length > 0)
{
//configure le port
SerialPort portcom =
new
SerialPort(ports[0], 4800,
Parity.None, 8,
StopBits.Two);

//ouverture du port
portcom.Open();
....

portcom.Close();
}
}
Je veux quand j'appui sur un boutton OK qu'il m'enrégistre le port COM choisi.
J'avais commencé par les bases de régistre mais apparemment c'est mieux d'utiliser les fichiers config.Quelqu'un peut m'aider?ou me donner un lien qui explique bien?
merci.

53 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 mai 2007 à 11:17
Clique droit sur ton projet, propriété.
Onglet settings sur la gauche (le 6ème depuis en haut chez moi)

Name: Port
Type: int
Scope: User
Value:12345

Dans ton code:

int

port = Properties.
Settings.Default.Port; // port = 12345
ou

Properties.
Settings.Default.Port = 54321;

<hr />
-Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 mai 2007 à 14:41
Oups j'ai oublié un petit détail lol.

Il faut appeler la méthode Save pour enregistrer les données...

Properties.
Settings.Default.Port =
22;
Properties.
Settings.Default.Save();

<hr />
-Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 mai 2007 à 11:30
Tu peux chercher un peu par toi-même aussi...
GetPortNames retourne une liste de string, c'est pour ça que ça ne marche pas (moi j'avais testé avec des ints).

Le mieux, c'est donc de mettre dans le fichier de config Port comme étant un string et pas un int.
Et ensuite:

Properties.Settings.Default.Port = (string)this.comboBox1.SelectedItem;

<hr />
-Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 mai 2007 à 14:06
Bon voici un exemple de code (tu n'es pas très perspicace) :

J'ai mis 3 bouttons dans un GroupBox.
Pour sauver le nom du boutton qui est sélectionné:

// Je pars du principe que y'a que des RadiosButton dans le groupBox
foreach (
RadioButton rb
in
this.groupBox1.Controls)
{
  
if (rb.Checked)
// C'est le button sélectionné
   {
      Properties.
Settings.Default.RadioCheck = rb.Name;
// On sauve son nom
      Properties.
Settings.Default.Save();
     
break;
// C'est fini, on l'a trouvé
   }
}

Pour charger le boutton et sélectionner au démarrage:

string buttonName = Properties.
Settings.Default.RadioCheck;

if (!
string.IsNullOrEmpty(buttonName))
{
  
Control[] cont =
this.groupBox1.Controls.Find(Properties.
Settings.Default.RadioCheck,
false);
  
if (cont !=
null && cont.Length > 0)
   {
     
RadioButton rb =
this.groupBox1.Controls.Find(buttonName,
false)[0]
as
RadioButton;
      if (rb !null) rb.Checked
true;
   }
}

<hr />
-Blog-
3

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

Posez votre question
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 10:52
Au niveau de mon projet où il y a le code ci dessus,j'ai mis au niveau des paramétres:
Nom:port;Type:string;portéé:Utilisateur;valeur:COM2
Comment l'aasocier avec le code ci dessus pour recupérer mon port COM?
Merci.
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
4 mai 2007 à 11:05
Sauf erreur de ma part, tu fais :

My.Settings.port, et tu as la valeur en retour.

Amicalement, SharpMao
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
4 mai 2007 à 11:11
Oups,
 pardon, mais je fais du VB.Net ces derniers temps .

en C#, c'est différent,

va voir ici
Amicalement, SharpMao
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 11:26
et en C# c commet?c'est pas un truc en rapport avec

ConfigurationSettings.AppSettings?
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 11:56
Help pleaz!!!!
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 mai 2007 à 12:29
Calmos, y'a pas toujours qqn pour répondre qui est là...
Properties.Settings.Default devrait l'affaire je pense.

<hr />
-Blog-
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 13:30
j'utilise Properties.Settings.Default par rapport à port?quand je mets  Properties.Settings.Default.port ....
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 mai 2007 à 13:38
Comment tu as crée ton fichier de configuration?
Avec le designer ?

<hr />
-Blog-
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 13:44
je suis allé dans:propriétés de mon projet->paramétres et j'ai mis
Nom:port;
Type:string;
portéé:Utilisateur;
valeur:COM2
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
4 mai 2007 à 14:04
Oui,je l'ai créé avec le designer.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 mai 2007 à 21:40
Oui, tu utilises Properties.Settings.Default.port

<hr />
-Blog-
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
9 mai 2007 à 07:45
slt,j'ai utilisé Properties.Settings.Default.port mais j'ai l'erreur suivante:
" Seuls une assignation, un appel, un incrément, un décrément et des expressions d'objet new peuvent être utilisés comme instruction ".
Merci.
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
9 mai 2007 à 09:50
tu es là Bidou?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 mai 2007 à 10:56
Oui je suis là, pas la peine de recréer un topic, je l'ai supprimé.
Tu fais comme ceci:

int

port = Properties.
Settings.Default.Port;
Pour autant que ton Port ait bien le nom "Port" et qu'il soit de type int.

<hr />
-Blog-
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
9 mai 2007 à 11:05
je l'ai mis dans le bouton(ok-click) et quand je l'execute il me met une erreur d'exception:"La référence d'objet n'est pas définie à une instance d'un objet."
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
9 mai 2007 à 11:23
au niveau des propriétés si je mets 12345 ou 54321,il me dit qu'il est impossible les de convertir en instance de type int.
0
Rejoignez-nous