c# IniFile 简单操作

来源:互联网 发布:java缺点 编辑:程序博客网 时间:2024/05/21 15:32

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Runtime.InteropServices;

namespace MyApp
{
    #region IniFile
    public class IniFile
    {
        private string _fileName;

        public IniFile(string filename)
        {
            _fileName = filename;
        }

        public IniFile()
        {
            _fileName = "";
        }

        //打开IniFile
        public bool Create(string filename)
        {
            if (filename.Trim() == "")
                return (false);

            _fileName = filename;

            return (true);
        }

        //读取整数
        //参数:section  文件节
        //      key      键值
        //      def      默认数值
        public int GetInt(string section, string key, int def)
        {
            return GetPrivateProfileInt(section, key, def, _fileName);
        }

        //读取字符串
        //参数:section  文件节
        //      key      键值
        //      def      默认数值
        public string GetString(string section, string key, string def)
        {
            StringBuilder temp = new StringBuilder(1024);
            GetPrivateProfileString(section, key, def, temp, 1024, _fileName);
            return temp.ToString();
        }

        //读取布尔数值
        //参数:section  文件节
        //      key      键值
        //      def      默认数值
        public bool GetBoolean(string section, string key, bool def)
        {
            bool retvalue = GetInt(section, key, (def ? 1 : 0)) == 1;
            return retvalue;
        }

        //写入整数数值
        //参数:section  文件节
        //      key      键值
        //      iVal     数值
        public void WriteInt(string section, string key, int iVal)
        {
            WritePrivateProfileString(section, key, iVal.ToString(), _fileName);
        }

        //写入字符串
        //参数:section  文件节
        //      key      键值
        //      strVal     数值
        public void WriteString(string section, string key, string strVal)
        {
            WritePrivateProfileString(section, key, strVal, _fileName);
        }

        //写入布尔数值
        //参数:section  文件节
        //      key      键值
        //      bVal     数值
        public void WriteBoolean(string section, string key, bool bVal)
        {
            WriteInt(section, key, (bVal ? 1 : 0));
        }

        //删除键
        //参数:section  文件节
        //      key      键值
        public void DelKey(string section, string key)
        {
            WritePrivateProfileString(section, key, null, _fileName);
        }

        //删除节
        //参数:section  文件节
        //      key      键值
        public void DelSection(string section)
        {
            WritePrivateProfileString(section, null, null, _fileName);
        }

        #region DllImport
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileInt(
           string lpAppName,
           string lpKeyName,
           int nDefault,
           string lpFileName
           );
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(
           string lpAppName,
           string lpKeyName,
           string lpDefault,
           StringBuilder lpReturnedString,
           int nSize,
           string lpFileName
           );
        [DllImport("kernel32")]
        private static extern bool WritePrivateProfileString(
           string lpAppName,
           string lpKeyName,
           string lpString,
           string lpFileName
           );
        #endregion
    }
    #endregion

原创粉丝点击