• INI建立 读取 存入


    ---恢复内容开始---

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Threading.Tasks;
      6 using System.Runtime.InteropServices;
      7 
      8 namespace INI
      9 {
     10     public class TINI : IDisposable
     11     {
     12         [DllImport("kernel32")]
     13         private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
     14         [DllImport("kernel32")]
     15         private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
     16 
     17         private bool bDisposed = false;
     18         private string _FilePath = string.Empty;
     19         public string FilePath
     20         {
     21             get
     22             {
     23                 if (_FilePath == null)
     24                     return string.Empty;
     25                 else
     26                     return _FilePath;
     27             }
     28 
     29             set
     30             {
     31                 if (_FilePath != value)
     32                     _FilePath = value;
     33             }
     34 
     35         }
     36    
     37         public TINI(string path)
     38         {
     39             _FilePath = path;
     40         }
     41 
     42         ~TINI()
     43         {
     44             Dispose(false);
     45         }
     46 
     47         public void Dispose()
     48         {
     49 
     50             Dispose(true);
     51             GC.SuppressFinalize(this); 
     52         }
     53  
     54         protected virtual void Dispose(bool IsDisposing)
     55         {
     56             if (bDisposed)
     57             {
     58                 return;
     59             }
     60 
     61             if (IsDisposing)
     62             {
     63                 //补充
     64                 //这里释放实体 IDisposable 的物件
     65                 //ex: DataSet DS = new DataSet(); 
     66                 //可在这里 使用 DS.Dispose(); 
     67                 //或是 DS = null; 
     68                 //或是释放自定义的物件。  
     69             }
     70             bDisposed = true;
     71 
     72         }
     73 
     74         /// <summary> 
     75         /// 設定 KeyValue 值。 
     76         /// </summary> 
     77         /// <param name="IN_Section">Section。</param> 
     78         /// <param name="IN_Key">Key。</param> 
     79         /// <param name="IN_Value">Value。</param> 
     80         public void setKeyValue(string IN_Section, string IN_Key, string IN_Value)
     81         {
     82             WritePrivateProfileString(IN_Section, IN_Key, IN_Value, this._FilePath);
     83 
     84         }
     85 
     86         public void setKeyValue(string IN_Section, string IN_Key, int IN_Value)
     87         {
     88             WritePrivateProfileString(IN_Section, IN_Key, Convert.ToString(IN_Value), this._FilePath);
     89 
     90         }
     91 
     92         public void setKeyValue(string IN_Section, string IN_Key, double IN_Value)
     93         {
     94             WritePrivateProfileString(IN_Section, IN_Key, Convert.ToString(IN_Value), this._FilePath);
     95 
     96         }
     97 
     98         /// <summary> 
     99         /// 取得 Key 相對的 Value 值。 
    100         /// </summary> 
    101         /// <param name="IN_Section">Section。</param> 
    102         /// <param name="IN_Key">Key。</param>         
    103         public string getKeyValue(string IN_Section, string IN_Key)
    104         {
    105             StringBuilder temp = new StringBuilder(255);
    106             int i = GetPrivateProfileString(IN_Section, IN_Key, "", temp, 255, this._FilePath);
    107             return temp.ToString();
    108         }
    109 
    110         /// <summary> 
    111         /// 取得 Key 相對的 Value 值,若沒有則使用預設值(DefaultValue)。 
    112         /// </summary> 
    113         /// <param name="Section">Section。</param> 
    114         /// <param name="Key">Key。</param> 
    115         /// <param name="DefaultValue">DefaultValue。</param>         
    116         public string getKeyValue(string Section, string Key, string DefaultValue)
    117         {
    118             StringBuilder sbResult = null;
    119             try
    120             {
    121                 sbResult = new StringBuilder(255);
    122                 GetPrivateProfileString(Section, Key, "", sbResult, 255, this._FilePath);
    123                 return (sbResult.Length > 0) ? sbResult.ToString() : DefaultValue;
    124             }
    125             catch
    126             {
    127                 return string.Empty;
    128             }
    129 
    130         }
    131 
    132     }
    133 
    134 }

    ---恢复内容结束---

  • 相关阅读:
    将博客搬至CSDN
    Linux-进程管理&网络管理
    MySQL架构备份之双机热备
    Linux目录结构&文件管理
    markdown文件即 .md 的基本常用编写语法
    Nginx
    Java 面试题(收集整理...ing)
    CentOS7 VS CentOS8
    Linux 学习
    vi/vim 命令整理
  • 原文地址:https://www.cnblogs.com/karrydong/p/4551896.html
Copyright © 2020-2023  润新知