[NEWS]
m1=01
m2=01
怎么把m1修改为m3.

解决方案 »

  1.   

    #region 读写ini文件 API定义
            [DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileStringA")]
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
            [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringA")]
            private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
    #endregion

    /// <summary>
    /// 写INI文件
    /// </summary>
    /// <param name="Section">配置目录</param>
    /// <param name="Key">参数</param>
    /// <param name="Value">值</param>
            /// <param name="IniPath">路径</param>
            public static bool IniWriteValue(string Section, string Key, string Value, string IniPath)
            {
                try
                {
                    WritePrivateProfileString(Section, Key, Value, IniPath);
                    return true;
                }
                catch
                {
                    return false;
                }        } 
    /// <summary>
    /// 读INI文件
    /// </summary>
    /// <param name="Section">配置目录</param>
    /// <param name="Key">参数</param>
            /// <param name="IniPath">路径</param>
    /// <returns>返回值</returns>
            public static string IniReadValue(string Section, string Key, string IniPath)
            {
                StringBuilder temp = new StringBuilder(255);
                int i = GetPrivateProfileString(Section, Key, "", temp, 255, IniPath);
                return temp.ToString();
            }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;namespace IniFiles
    {
        public abstract class CustomIniFile
        {
            public CustomIniFile(string AFileName) 
            {
                FFileName = AFileName;
            }
            private string FFileName;
            public string FileName
            {
                get { return FFileName; }
            }
            public virtual bool SectionExists(string Section)
            {
                List<string> vStrings = new List<string>();
                ReadSections(vStrings);
                return vStrings.Contains(Section);
            }
            public virtual bool ValueExists(string Section, string Ident)
            {
                List<string> vStrings = new List<string>();
                ReadSection(Section, vStrings);
                return vStrings.Contains(Ident);
            }
            public abstract string ReadString(string Section, string Ident, string Default);
            public abstract bool WriteString(string Section, string Ident, string Value);
            public abstract bool ReadSectionValues(string Section, List<string> Strings);
            public abstract bool ReadSection(string Section, List<string> Strings);
            public abstract bool ReadSections(List<string> Strings);
            public abstract bool EraseSection(string Section);
            public abstract bool DeleteKey(string Section, string Ident);
            public abstract bool UpdateFile();
        }    /// <summary>
        /// 存储本地INI文件的类。
        /// </summary>
        public class IniFile : CustomIniFile
        {
            [DllImport("kernel32")]
            private static extern uint GetPrivateProfileString(
                string lpAppName, // points to section name 
                string lpKeyName, // points to key name 
                string lpDefault, // points to default string 
                byte[] lpReturnedString, // points to destination buffer 
                uint nSize, // size of destination buffer 
                string lpFileName  // points to initialization filename 
            );        [DllImport("kernel32")]
            private static extern bool WritePrivateProfileString(
                string lpAppName, // pointer to section name 
                string lpKeyName, // pointer to key name 
                string lpString, // pointer to string to add 
                string lpFileName  // pointer to initialization filename 
            );        /// <summary>
            /// 构造IniFile实例。
            /// <param name="AFileName">指定文件名</param>
            /// </summary>
            public IniFile(string AFileName)
                : base(AFileName)
            {
            }        /// <summary>
            /// 析够IniFile实例。
            /// </summary>
            ~IniFile()
            {
                UpdateFile();
            }        /// <summary>
            /// 读取字符串值。
            /// <param name="Ident">指定变量标识。</param>
            /// <param name="Section">指定所在区域。</param>
            /// <param name="Default">指定默认值。</param>
            /// <returns>返回读取的字符串。如果读取失败则返回该值。</returns>
            /// </summary>
            public override string ReadString(string Section, string Ident, string Default)
            {
                byte[] vBuffer = new byte[2048];
                uint vCount = GetPrivateProfileString(Section,
                    Ident, Default, vBuffer, (uint)vBuffer.Length, FileName);
                return Encoding.Default.GetString(vBuffer, 0, (int)vCount);
            }
            /// <summary>
            /// 写入字符串值。
            /// </summary>
            /// <param name="Section">指定所在区域。</param>
            /// <param name="Ident">指定变量标识。</param>
            /// <param name="Value">所要写入的变量值。</param>
            /// <returns>返回写入是否成功。</returns>
            public override bool WriteString(string Section, string Ident, string Value)
            {
                return WritePrivateProfileString(Section, Ident, Value, FileName);
            }        /// <summary>
            /// 获得区域的完整文本。(变量名=值格式)。
            /// </summary>
            /// <param name="Section">指定区域标识。</param>
            /// <param name="Strings">输出处理结果。</param>
            /// <returns>返回读取是否成功。</returns>
            public override bool ReadSectionValues(string Section, List<string> Strings)
            {
                List<string> vIdentList = new List<string>();
                if (!ReadSection(Section, vIdentList)) return false;
                foreach (string vIdent in vIdentList)
                    Strings.Add(string.Format("{0}={1}", vIdent, ReadString(Section, vIdent, "")));
                return true;
            }        /// <summary>
            /// 读取区域变量名列表。
            /// </summary>
            /// <param name="Section">指定区域名。</param>
            /// <param name="Strings">指定输出列表。</param>
            /// <returns>返回获取是否成功。</returns>
            public override bool ReadSection(string Section, List<string> Strings)
            {
                byte[] vBuffer = new byte[16384];
                uint vLength = GetPrivateProfileString(Section, null, null, vBuffer,
                    (uint)vBuffer.Length, FileName);
                int j = 0;
                for (int i = 0; i < vLength; i++)
                    if (vBuffer[i] == 0)
                    {
                        Strings.Add(Encoding.Default.GetString(vBuffer, j, i - j));
                        j = i + 1;
                    }
                return true;
            }        /// <summary>
            /// 读取区域名列表。
            /// </summary>
            /// <param name="Strings">指定输出列表。</param>
            /// <returns></returns>
            public override bool ReadSections(List<string> Strings)
            {
                byte[] vBuffer = new byte[16384];
                uint vLength = GetPrivateProfileString(null, null, null, vBuffer, 
                    (uint)vBuffer.Length, FileName);
                int j = 0;
                for (int i = 0; i < vLength; i++)
                    if (vBuffer[i] == 0)
                    {
                        Strings.Add(Encoding.Default.GetString(vBuffer, j, i - j));
                        j = i + 1;
                    }
                return true;
            }        /// <summary>
            /// 删除指定区域。
            /// </summary>
            /// <param name="Section">指定区域名。</param>
            /// <returns>返回删除是否成功。</returns>
            public override bool EraseSection(string Section)
            {
                return WritePrivateProfileString(Section, null, null, FileName);
            }        /// <summary>
            /// 删除指定变量。
            /// </summary>
            /// <param name="Section">变量所在区域。</param>
            /// <param name="Ident">变量标识。</param>
            /// <returns>返回删除是否成功。</returns>
            public override bool DeleteKey(string Section, string Ident)
            {
                return WritePrivateProfileString(Section, Ident, null, FileName);
            }        /// <summary>
            /// 更新文件。
            /// </summary>
            /// <returns>返回更新是否成功。</returns>
            public override bool UpdateFile()
            {
                return WritePrivateProfileString(null, null, null, FileName);
            }
        }
    }//通过SectionExists()可以知道
      

  3.   

    Read/Write XML files, Config files, INI files, or the Registry
    By Alvaro Mendez
    http://www.codeproject.com/csharp/readwritexmlini.asp