For a game I’m developing on (in C#), we need to be able to save and load options files, and for ease of use, we decided to do it as plain text.
I have a problem however when I try to load the text back into their variables as I don’t always know what type of variable it needs to be loaded into.
The following line of code works, except for the fact that I have yet to find functionallity that resembles
f.GetType().Parse()
Heres the actual code
OptionsClass current = new OptionsClass();
using(StreamReader reader = new StreamReader(path)){
string line;
while((line = reader.ReadLine()) != null){
foreach(FieldInfo f in typeof(OptionsClass).GetFields()){
f.SetValue(current, f.GetType().Parse(line.Split(new char[] {'='})[1]));
}
}
}
Let me know if anything is unclear, or more information is needed.
Regards,
-Logan
Rather than trying to do this yourself, I would suggest that you use the builtin XML or JSON serialiation.
However, if you are going to implement this yourself, then I would suggest that you perform a switch on the type of field and convert the value according to the data type of the field. For example:
One additional note: if you are going the self-built route, then you probably want to be a little more robust in the data conversions (i.e. checking to see if the string is not null and is numeric when converting to a number, etc).