Reading Configuration Files Without Using Win32
.
Environment: .Net, C#
This is just a small class to handle configuration files. There are several other classes like this one, but they all use the GetPrivateProfileString()/SetPrivateProfileString() family of functions from the Win32 API.
If you check the documentation for those API, you'll notice that they are provided merely for compatability with Win16 applications. It's been quite some time since anyone wrote Win16 applications. (At least, I hope so.) You can find a C# class that uses those API here, using Interop. I don't like to use compatability functions; Microsoft is usually good with compatability, but still... and when you add Interop to the mess, I decided to do it on my own.
So I wrote a class that does it for me, without using Interop. It uses the same syntax as all INI files for Windows, and it supports sections and section-less keys.
Configuration conf =
new Configuration(new System.IO.StreamReader("Configuration.ini"));
string UserName = conf.GetValue("User");
string HomePage = conf.GetValue("Internet_Data","Home_Page");
conf.SetValue( "User_Information",
"Log_In_Time",
System.DateTime.Now.ToString());
Pretty simple, isn't it? Now, it's not XML, and it doesn't have hype all over it, but it's small, efficent, and allows data hiding. If you want to switch the back end from an INI file to xn XML file, it's just a matter of changing the Parse() & Save() methods. The code is well commented, you shouldn't have any trouble with it. If you do have problems, I'll be glad to hear about them.
Downloads
Download demo project - 5.67 KbDownload source - 3.61 Kb

Comments
Slick and Simple
Posted by callum_bell on 03/04/2004 07:22pmVery nice, just what I needed.
Replyremove functions
Posted by Legacy on 02/21/2003 12:00amOriginally posted by: Lee
ReplyNice Function
Posted by Legacy on 11/20/2002 12:00amOriginally posted by: Robert
Worked well for me..
ReplyDelete Keys
Posted by Legacy on 10/12/2002 12:00amOriginally posted by: DB
It would be nice if there was a delete function for keys and name pair values.
Kinda like:
void SetValue(string Key, string ValueName, string Value)
But like:
void RemoveValue(string Key)
Where if only the key was provided then the entire key would be removed including ValueNames and it's Values.
Where:
void RemoveValue(string Key, string ValueName)
If the ValueName was provided with the key then just the ValueName would be removed within the key.
ReplyLog File System for multithreaded application
Posted by Legacy on 07/12/2002 12:00amOriginally posted by: Ram Sharma
Does anyone know how to write to a log file but make the 'write' thread safe? I am not sure how to synchronize the writing to log file from various threads.
Thanks
ReplyRam