GetPrivateProfileString() 공개 정적인 메소드

Reads an INI value as a string.
public static GetPrivateProfileString ( string section, string key, string def, string path ) : string
section string The section containing the value to be read.
key string The key of the value to be read.
def string The default value to use if the key is not present in the INI file.
path string The absolute path of the INI file.
리턴 string
예제 #1
0
        /// <summary>
        /// Sets the specified value in the specified Ini file to the given value.
        /// </summary>
        /// <param name="p_strSettingsFileName">The name of the settings file to edit.</param>
        /// <param name="p_strSection">The section in the Ini file to edit.</param>
        /// <param name="p_strKey">The key in the Ini file to edit.</param>
        /// <param name="p_strValue">The value to which to set the key.</param>
        /// <returns><c>true</c> if the value was set; <c>false</c>
        /// if the user chose not to overwrite the existing value.</returns>
        public virtual bool EditIni(string p_strSettingsFileName, string p_strSection, string p_strKey, string p_strValue)
        {
            if (m_booDontOverwriteAllIni)
            {
                return(false);
            }

            if (!TouchedFiles.Contains(p_strSettingsFileName))
            {
                TouchedFiles.Add(p_strSettingsFileName);
                TransactionalFileManager.Snapshot(p_strSettingsFileName);
            }

            IMod   modOldMod   = InstallLog.GetCurrentIniEditOwner(p_strSettingsFileName, p_strSection, p_strKey);
            string strOldValue = IniMethods.GetPrivateProfileString(p_strSection, p_strKey, null, p_strSettingsFileName);

            if (!m_booOverwriteAllIni)
            {
                string strMessage = null;
                if (modOldMod != null)
                {
                    strMessage = String.Format("Key '{{0}}' in section '{{1}}' of {{2}} has already been overwritten by '{0}'\n" +
                                               "Overwrite again with this mod?\n" +
                                               "Current value '{{3}}', new value '{{4}}'", modOldMod.ModName);
                }
                else
                {
                    strMessage = "The mod wants to modify key '{0}' in section '{1}' of {2}.\n" +
                                 "Allow the change?\n" +
                                 "Current value '{3}', new value '{4}'";
                }
                switch (m_dlgOverwriteConfirmationDelegate(String.Format(strMessage, p_strKey, p_strSection, p_strSettingsFileName, strOldValue, p_strValue), false, false))
                {
                case OverwriteResult.YesToAll:
                    m_booOverwriteAllIni = true;
                    break;

                case OverwriteResult.NoToAll:
                    m_booDontOverwriteAllIni = true;
                    break;

                case OverwriteResult.Yes:
                    break;

                default:
                    return(false);
                }
            }

            //if we are overwriting an original value, back it up
            if ((modOldMod == null) && (strOldValue != null))
            {
                InstallLog.LogOriginalIniValue(p_strSettingsFileName, p_strSection, p_strKey, strOldValue);
            }

            IniMethods.WritePrivateProfileString(p_strSection, p_strKey, p_strValue, p_strSettingsFileName);
            InstallLog.AddIniEdit(Mod, p_strSettingsFileName, p_strSection, p_strKey, p_strValue);
            return(true);
        }
예제 #2
0
 /// <summary>
 /// Retrieves the specified settings value as a string.
 /// </summary>
 /// <param name="p_strSettingsFileName">The name of the settings file from which to retrieve the value.</param>
 /// <param name="p_strSection">The section containing the value to retrieve.</param>
 /// <param name="p_strKey">The key of the value to retrieve.</param>
 /// <returns>The specified value as a string.</returns>
 public string GetIniString(string p_strSettingsFileName, string p_strSection, string p_strKey)
 {
     return(IniMethods.GetPrivateProfileString(p_strSection, p_strKey, null, p_strSettingsFileName));
 }