/// <summary> /// Sets or updates an entry with the given key name. /// </summary> public Value SetValue(string key, SfoEntryType type, string @value, int maxLength = 4) { var v = Value.Create(key, type, @value, maxLength); this[key] = v; return(v); }
public static Value Create(string name, SfoEntryType type, string value, int maxLength = 4) { switch (type) { case SfoEntryType.Utf8Special: return(new Utf8SpecialValue(name, value, maxLength)); case SfoEntryType.Utf8: return(new Utf8Value(name, value, maxLength)); case SfoEntryType.Integer: int newNumber = 0; if (value.Contains("0x")) { int.TryParse(value.Replace("0x", ""), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out newNumber); } else { int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out newNumber); } return(new IntegerValue(name, newNumber)); default: return(null); } }
public Value(string name, SfoEntryType type) { Name = name; Type = type; }