电竞比分网-中国电竞赛事及体育赛事平台

分享

Ini文件操作類

 XXG學(xué)習(xí)園 2012-06-14
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">短節(jié)</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">段節(jié)</param>
        /// <param name="path">路徑</param>
        public void ClearSection(string section,string path)
        {
            IniWriteValue(section,null,null,path);
        }
        /// <summary>
        /// 讀取Ini文件,返回字符串
        /// </summary>
        /// <param name="section">段節(jié)</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型數(shù)據(jù)
        /// </summary>
        /// <param name="section">段節(jié)</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>
        /// 轉(zhuǎn)換byte[]型為string[]數(shù)組類型
        /// </summary>
        /// <param name="sectionByte"></param>
        /// <returns></returns>
        private string[] ByteToString(byte[] sectionByte)
        {
            ASCIIEncoding ascii = new ASCIIEncoding();
            //編寫所有key的string類型
            string sections = ascii.GetString(sectionByte);
            //獲取key的數(shù)組
            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);
        }
    }
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約