示例#1
0
    static List <iniUnit> paraIni(List <string> allLines)
    {
        int            index   = -1;
        List <iniUnit> iniData = new List <iniUnit>();

        foreach (string str in allLines)
        {
            if (str.Length <= 0)
            {
                continue;
            }
            if (str.Contains("[") && str.Contains("]"))
            {
                ++index;
                iniUnit iu = new iniUnit();
                iu.section = str.Substring(1, str.Length - 2);
                iniData.Add(iu);
            }
            else
            {
                int indexEqual = str.IndexOf('=');
                Dictionary <string, string> temp = new Dictionary <string, string>();
                string key   = str.Substring(0, indexEqual);
                string value = str.Substring(indexEqual + 1, str.Length - indexEqual - 1);
                temp.Add(key, value);
                iniData[index].pairsList.Add(temp);
            }
        }
        return(iniData);
    }
示例#2
0
    /// <summary>
    /// 获取section下面的所有键值对
    /// </summary>
    /// <param name="section"></param>
    /// <param name="path"></param>
    /// <returns></returns>
    public static Dictionary <string, string> getAllPair(string section, string path)
    {
        Dictionary <string, string> returnValue = new Dictionary <string, string>();
        List <iniUnit> iniData     = read(path);
        iniUnit        findSection = iniData.Find(data =>
        {
            if (data.section == section)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        });

        if (findSection != null)
        {
            for (int i = 0; i < findSection.pairsList.Count; i++)
            {
                foreach (KeyValuePair <string, string> pair in findSection.pairsList[i])
                {
                    returnValue.Add(pair.Key, pair.Value);
                }
            }
        }
        return(returnValue);
    }
示例#3
0
    /// <summary>
    /// Reads the ini.
    /// </summary>
    /// <returns>The ini.</returns>
    /// <param name="section">Section.</param>
    /// <param name="key">Key.</param>
    /// <param name="path">Path.</param>
    public static string ReadIni(string section, string key, string path, bool local = false)
    {
        List <iniUnit> iniData     = read(path, local);
        iniUnit        findSection = iniData.Find(data =>
        {
            if (data.section == section)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        });

        if (findSection != null)
        {
            for (int i = 0; i < findSection.pairsList.Count; i++)
            {
                foreach (KeyValuePair <string, string> pair in findSection.pairsList[i])
                {
                    if (pair.Key == key)
                    {
                        return(pair.Value);
                    }
                }
            }
            return("");
        }
        else
        {
            return("");
        }
    }
示例#4
0
    /// <summary>
    /// 写INI文件,但webplayer模式下不支持
    /// </summary>
    /// <param name="section"></param>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="path"></param>
    public static void writeIni(string section, string key, string value, string path)
    {
#if UNITY_STANDALONE_WIN
        List <iniUnit> iniData     = read(path);
        string[]       ary         = File.ReadAllLines(path);
        iniUnit        findSection = iniData.Find(data =>
        {
            if (data.section == section)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        });
        if (findSection != null)
        {
            for (int i = 0; i < findSection.pairsList.Count; i++)
            {
                if (findSection.pairsList[i].ContainsKey(key))
                {
                    findSection.pairsList[i][key] = value;
                    for (int j = 0; j < ary.Length; j++)
                    {
                        if (ary[j].Contains("[" + section + "]"))
                        {
                            for (int k = j + 1; k < ary.Length; k++)
                            {
                                if (ary[k].Contains("[") || ary[k].Contains("]"))
                                {
                                    break;
                                }
                                else
                                {
                                    if (ary[k].Contains(key + "="))
                                    {
                                        ary[k] = key + "=" + value;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        File.WriteAllLines(path, ary);
#endif
    }
示例#5
0
    /// <summary>
    /// check is exist section
    /// </summary>
    /// <param name="section"></param>
    /// <param name="path"></param>
    /// <returns></returns>
    public static bool isExistSection(string section, string path)
    {
        List <iniUnit> iniData     = read(path);
        iniUnit        findSection = iniData.Find(data =>
        {
            if (data.section == section)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        });

        if (findSection != null)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }