Can anyone offer any advice on how to go about setting up the ability for a program to allow a user to set or change configuration options?

I can create a form with certain options, but how do I store the selections? In a database? XML file? In the Registry?

Any help would, as usual, be much appreciated, but a solid explanation of the concept is what I'm really seeking, and if anyone can provide a link to a site where I can study the concept would be ideal.

What kind of program is this? A windows app or web app.
If it is a windows app, I would use an ini file (or xml if you want). Just write the configuration changes to it and then read it when program opens. I prefer to stay away from the registry unless absolutely necessary.

if this is a web app, you would probably need to either use a cookie or a database.

It's a windows app, and I'd lean toward an XML file myself, but I'm not sure how to implement that functionality. Am I correct to assume that reading the file would require some sort of parsing, or would the app just "understand" what it reads on startup because it wrote it?.

I don't know if I'm just storing a list of parameters and values, variables or something else. I also don't know what code I would write to even cause the app to read such a file (the functionality may be automated, but I just haven't found it yet). I'll of course keep digging, but I'll accept help!

I don't think it is automated.
You will need to create a file reader, read the file in and then parse it.

Here is a code snippet of something i was working on.

private string stringA;
private string stringB;
private string stringC;
OpenFileDialog fd = new OpenFileDialog();
			fd.ShowDialog();
			FileStream f= new FileStream(fd.FileName, FileMode.Open, FileAccess.Read);
			StreamReader sr = new StreamReader(f);
			string strTemp = sr.ReadLine();
			while(strTemp != null)
			{
				switch (strTemp)
			 {
					case("<optionA>"):
						stringA = sr.ReadLine(); //reads in the next line after opening tag and sets it to stringA
						sr.ReadLine(); // gets rid of the closing tag
						break;
					case("<optionB>"):
						stringB = sr.ReadLine(); //reads in the next line after opening tag and sets it to stringB
						sr.ReadLine(); // gets rid of the closing tag
						break;
					case("<optionC>"):
						stringC = sr.ReadLine(); //reads in the next line after opening tag and sets it to stringC
						sr.ReadLine(); // gets rid of the closing tag
						break;

			 }
				strTemp =sr.ReadLine();
						
			}
			sr.Close();

The xml file would need to look like:

<optionA>
true
</optionA>
<optionB>
false
</optionB>
<optionC>
true
</optionC>

hope this gets you started

Yeah, thanks campkev.
That's a good start; at least I can visualize the concept. I'll need to do a bit more study into file readers and parsing though.
As always, I'll try to post my progress so others who might be at the same level I am can benefit.

How to best manage configuration information will depend on your situation, but XML is not a bad way to go in many cases. You can create a Configuration class with all of your variables, then just serialize it to XML. It's simple.

Check out my article on this subject for more details and full code:

XML Configuration File Example

Cheers,
- Steve

How to best manage configuration information will depend on your situation, but XML is not a bad way to go in many cases. You can create a Configuration class with all of your variables, then just serialize it to XML. It's simple.

Check out my article on this subject for more details and full code:

XML Configuration File Example

Cheers,
- Steve

Thanks, I have looked at it and will spend some time going over it later this evening. Very helpful site, by the way.

This article has been dead for over six months. Start a new discussion instead.