2009-12-18 8 views
1

J'écris un programme en C#. Le programme contrôle une roue de filtre physique qui a des roues interchangeables de A à H. Chaque roue peut contenir 8 filtres. Je veux que l'utilisateur puisse stocker des noms amicaux pour chaque filtre dans chaque roue (64 au total). L'appareil et le programme sont capables d'identifier l'ID de la roue (A-H) et la position du filtre (1-8). Quelle est la meilleure façon de stocker ces 64 noms et de pouvoir les référencer par l'ID et le POS. Je pourrais créer un paramètre d'utilisateur pour chacun mais il y a deux problèmes avec cela: 1) Les noms ne seraient pas identiques pour chaque utilisateur qui se connecte à la machine (je pense), et 2) pour accéder aux noms spécifiques par programme Je dois utiliser une déclaration de cas ÉNORME. Ou y a-t-il un moyen d'accéder aux paramètres par le nom? comme ça..?Accès aux paramètres du programme par nom

char WheelID = 'A'; 
int FilterPos = 4; 
NewName = "FriendlyName"; 

string SettingIWant = WheelID.ToString() + FilterPos.ToString(); 

Properties.Settings[SettingIWant].Text = NewName; 

Répondre

2

Ok, je suis tout simplement stupide et négligé cette façon d'accéder aux réglages ...

string SettingToChange = WheelID.ToString() + Position.ToString(); 
      Settings1.Default[SettingToChange] = NewName; 
      Settings1.Default.Save(); 

Il fonctionne très bien. Le seul problème est que les valeurs stockées ne seront pas les mêmes pour tous les utilisateurs, mais devra juste faire face à cela!

0

Bien sûr, il y a. Remplacez simplement l'opérateur [].

1

Eh bien, vous pourriez prendre l'approche de la base de données.

Une solution "en mémoire", serait des dictionnaires.

char WheelID = 'A'; 
int FilterPos = 4; 
NewName = "FriendlyName"; 

string SettingIWant = WheelID.ToString() + FilterPos.ToString(); 
Dictionary<string, string> properties = new Dictionary<string, string>() 
properties.Add(SettingIWant, NewName); 

Ant vous pouvez accéder aux données en utilisant la syntaxe de support

properties[SettingIWant] 
+0

Mais sans une base de données, je ne peux pas stocker ces entrées de dictionnaire après la fermeture de l'application sauf si j'utilise les paramètres correctement? – PICyourBrain

+0

Avec les autorisations appropriées, vous pouvez écrire les associations de noms dans un fichier texte. Et si vous voulez être complètement "à la mode", vous pouvez utiliser XML. Mais je ne le ferais pas. –

+0

En fait, je suis à peu près sûr que vous pouvez ajouter un objet de type Dictionary à un fichier de paramètres. J'ai ajouté des objets personnalisés dans le passé, donc ça devrait vraiment marcher. –

0

OK. J'ai juste fait quelques recherches minimes et voici ce que je pense que vous voulez faire.

D'abord, mettre en œuvre Dicitonary chose de Rodrigo Garcia, sauf utiliser System.Collections.Specialized.StringDictionary. C'est l'un des types qui peuvent être ajoutés à un fichier de paramètres. Lorsque vous configurez les paramètres de votre application, sous Type, sélectionnez "Parcourir ..." si vous ne le voyez pas dans la liste.

Et assurez-vous de toujours écrire les modifications, si la collection change!

Questions connexes