Beispiel #1
0
    /// <summary>
    /// 读取INI文件中指定KEY的字符串型值
    /// </summary>
    /// <param name="iniFile">Ini文件</param>
    /// <param name="section">节点名称</param>
    /// <param name="key">键名称</param>
    /// <param name="defaultValue">如果没此KEY所使用的默认值</param>
    /// <returns>读取到的值</returns>
    public static string INIGetStringValue(string iniFile, string section, string key, string defaultValue)
    {
        string    value = defaultValue;
        const int SIZE  = 1024 * 10;

        if (string.IsNullOrEmpty(section))
        {
            throw new ArgumentException("必须指定节点名称", "section");
        }

        if (string.IsNullOrEmpty(key))
        {
            throw new ArgumentException("必须指定键名称(key)", "key");
        }

        StringBuilder sb            = new StringBuilder(SIZE);
        uint          bytesReturned = INIOperationHelper.GetPrivateProfileString(section, key, defaultValue, sb, SIZE, iniFile);

        if (bytesReturned != 0)
        {
            value = sb.ToString();
        }
        sb = null;

        return(value);
    }
Beispiel #2
0
    /// <summary>
    /// 获取INI文件中指定节点(Section)中的所有条目的Key列表
    /// </summary>
    /// <param name="iniFile">Ini文件</param>
    /// <param name="section">节点名称</param>
    /// <returns>如果没有内容,反回string[0]</returns>
    public static string[] INIGetAllItemKeys(string iniFile, string section)
    {
        string[]  value = new string[0];
        const int SIZE  = 1024 * 10;

        if (string.IsNullOrEmpty(section))
        {
            throw new ArgumentException("必须指定节点名称", "section");
        }

        char[] chars         = new char[SIZE];
        uint   bytesReturned = INIOperationHelper.GetPrivateProfileString(section, null, null, chars, SIZE, iniFile);

        if (bytesReturned != 0)
        {
            value = new string(chars).Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
        }
        chars = null;

        return(value);
    }