• Ini文件操作类


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
     
    namespace IniOp
    {
        public class IniOperator
        {
            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal,int size,string filePath);
            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section, string key, string defVal,Byte[]retVal,int size, string filePath);
            /// <summary>
            /// 写INI文件
            /// </summary>
            /// <param name="section">短节</param>
            /// <param name="key">键</param>
            /// <param name="value">键值</param>
            /// <param name="path">写入的路径</param>
            public void IniWriteValue(string section, string key, string value,string path)
            {
                WritePrivateProfileString(section, key, value, path);
            }
            /// <summary>
            /// 删除指定路径下的Ini文件下所有段落
            /// </summary>
            public void ClearAllSection(string path)
            {
                IniWriteValue(null,null,null,path);
            }
            /// <summary>
            /// 删除Ini文件下personal段落下的所有键
            /// </summary>
            /// <param name="section">段节</param>
            /// <param name="path">路径</param>
            public void ClearSection(string section,string path)
            {
                IniWriteValue(section,null,null,path);
            }
            /// <summary>
            /// 读取Ini文件,返回字符串
            /// </summary>
            /// <param name="section">段节</param>
            /// <param name="key">键</param>
            /// <param name="path">路径</param>
            /// <returns>返回键的值</returns>
            public string IniReadValue(string section, string key,string path)
            {
                StringBuilder temp = new StringBuilder(255);
                int i = GetPrivateProfileString(section,key,"",temp,255,path);
                return temp.ToString();
            }
            /// <summary>
            /// 读取Ini文件,返回byte型数据
            /// </summary>
            /// <param name="section">段节</param>
            /// <param name="key">键</param>
            /// <param name="path">路径</param>
            /// <returns>返回键的值</returns>
            public byte[] IniReadValues(string section, string key, string path)
            {
                byte[] temp = new byte[255];
                int i = GetPrivateProfileString(section, key, "", temp, 255, path);
                return temp;
            }
            /// <summary>
            /// 读取Ini文件的所有段落名
            /// </summary>
            public string[] IniReadValues(string path)
            {
                byte[] allSection = IniReadValues(null,null,path);
                return ByteToString(allSection);
            }
            /// <summary>
            /// 转换byte[]型为string[]数组类型
            /// </summary>
            /// <param name="sectionByte"></param>
            /// <returns></returns>
            private string[] ByteToString(byte[] sectionByte)
            {
                ASCIIEncoding ascii = new ASCIIEncoding();
                //编写所有key的string类型
                string sections = ascii.GetString(sectionByte);
                //获取key的数组
                string[] sectionList = sections.Split(new char[1]{'\0'});
                return sectionList;
            }
            /// <summary>
            /// 读取ini文件的某个段落下的所有键名
            /// </summary>
            /// <param name="section"></param>
            /// <param name="path"></param>
            /// <returns></returns>
            public string[] IniReaValues(string section, string path)
            {
                byte[] sectionByte = IniReadValues(section,null,path);
                return ByteToString(sectionByte);
            }
        }
    }
  • 相关阅读:
    Eclipse SVN忽略某些文件或文件夹方法
    在ORACLE中给已有数据的表增加、修改、删除一个字段(或一个列)或者多个字段(或多个列)的问题
    Java中IO流,输入输出流概述与总结
    Java面向对象之继承
    jquery-each()
    window.showModalDialog以及window.open用法简介
    struts1、ajax、jquery、json简单实例
    软件人才管理
    疑难杂症定位记录
    linux中断子系统
  • 原文地址:https://www.cnblogs.com/xiexingen/p/2850148.html
Copyright © 2020-2023  润新知