public void ChangeProperty(SaveInfo source) { string key = source["Key"]; string parameters = source["Parameters"]; int total = int.Parse(parameters); SaveInfo info = infos.FirstOrDefault(c => c["Key"] == key); if (info == null) { info = new SaveInfo(); info.Add("Key", key); info.Add("Paremeters", parameters); for (int i = 0; i < total; i++) { string paramKey = "Param" + (i + 1); info.Add(paramKey, source[paramKey]); } } else { for (int i = 0; i < total; i++) { string paramKey = "Param" + (i + 1); info[paramKey] = source[paramKey]; } } //int start; //int end; //if (GetPosition(rawData, propertyName, out start, out end)) //{ // rawData = rawData.Remove(start, end - start); // rawData = rawData.Insert(start, value); // return true; //} //else //{ // // search for the section name // if (GetPosition(rawData, section, out start, out end)) // { // // write the property // } // else // { // // write section // rawData += section + "{ }"; // // now write the property // ChangeProperty(section, propertyName, value); // } //} //return false; }
public SaveInfo NewScrSaveInfo(string key, params string[] values) { SaveInfo info = new SaveInfo(); info.Add("Key", key); info.Add("Parameters", values.Length.ToString()); for (int i = 0; i < values.Length; i++) { string paramKey = "Param" + (i + 1); info.Add(paramKey, values[i]); } return(info); }
private void Parse(string data) { string[] lines = data.Split('\n'); for (int i = 0; i < lines.Length; i++) { string line = lines[i]; if (line.StartsWith("!")) { continue; } int nextParen = line.IndexOf('('); if (nextParen == -1) { continue; } int nextEndParen = line.IndexOf(')'); SaveInfo info = new SaveInfo(); string key = line.Remove(nextParen, line.Length - nextParen); info.Add("Key", key); string sub = line.Substring(nextParen + 1, nextEndParen - nextParen - 1); string[] parameters = sub.Split(','); info.Add("Parameters", parameters.Length.ToString()); for (int j = 0; j < parameters.Length; j++) { info.Add("Param" + (j + 1), parameters[j]); } infos.Add(info); } }