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;
        }
Esempio n. 2
0
        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);
            }
        }