当前位置:  编程技术>.net/c#/asp.net

c#实现ini文件读写的类

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节内容: c#实现的ini文件读写类。 完整代码:   代码示例: /// /// 读写INI文件的类。 /// public class INIHelper {    // 读写INI文件相关。    [DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileString", CharSet = CharSet.Ansi)]    publi...

本节内容:
c#实现的ini文件读写类。

完整代码:
 

代码示例:

///
/// 读写INI文件的类。
///
public class INIHelper
{
   // 读写INI文件相关。
   [DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileString", CharSet = CharSet.Ansi)]
   public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
   [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString", CharSet = CharSet.Ansi)]
   public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
   [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileSectionNames", CharSet = CharSet.Ansi)]
   public static extern int GetPrivateProfileSectionNames(IntPtr lpszReturnBuffer, int nSize, string filePath);
   [DllImport("KERNEL32.DLL ", EntryPoint = "GetPrivateProfileSection", CharSet = CharSet.Ansi)]
   public static extern int GetPrivateProfileSection(string lpAppName, byte[] lpReturnedString, int nSize, string filePath);

   ///
   /// 向INI写入数据。
   ///
   /// 节点名。
   /// 键名。
   /// 值名。
   public static void Write(string Section, string Key, string Value, string path)
   {
       WritePrivateProfileString(Section, Key, Value, path);
   }

   ///
   /// 读取INI数据。
   ///
   /// 节点名。
   /// 键名。
   /// 值名。
   /// 相应的值。
   public static string Read(string Section, string Key, string path)
   {
       StringBuilder temp = new StringBuilder(255);
       int i = GetPrivateProfileString(Section, Key, "", temp, 255, path);
       return temp.ToString();
   }
   ///
   /// 读取一个ini里面所有的节
   ///
   ///
   ///
   ///
   public static int GetAllSectionNames(out string[] sections, string path)
   {
       int MAX_BUFFER = 32767;
       IntPtr pReturnedString = Marshal.AllocCoTaskMem(MAX_BUFFER);
       int bytesReturned = GetPrivateProfileSectionNames(pReturnedString, MAX_BUFFER, path);
       if (bytesReturned == 0)
       {
      sections = null;
      return -1;
       }
       string local = Marshal.PtrToStringAnsi(pReturnedString, (int)bytesReturned).ToString();
       Marshal.FreeCoTaskMem(pReturnedString);
       //use of Substring below removes terminating null for split
       sections = local.Substring(0, local.Length - 1).Split('');
       return 0;
   }
   ///
   /// 得到某个节点下面所有的key和value组合
   ///
   ///
   ///
   ///
   ///
   ///
   public static int GetAllKeyValues(string section, out string[] keys, out string[] values, string path)
   { // www.
       byte[] b = new byte[65535];
       GetPrivateProfileSection(section, b, b.Length, path);
       string s = System.Text.Encoding.Default.GetString(b);
       string[] tmp = s.Split((char)0);
       ArrayList result = new ArrayList();
       foreach (string r in tmp)
       {
      if (r != string.Empty)
          result.Add(r);
       }
       keys = new string[result.Count];
       values = new string[result.Count];
       for (int i = 0; i < result.Count; i++)
       {
      string[] item = result[i].ToString().Split(new char[] { '=' });
      if (item.Length == 2)
      {
          keys[i] = item[0].Trim();
          values[i] = item[1].Trim();
      }
      else if (item.Length == 1)
      {
          keys[i] = item[0].Trim();
          values[i] = "";
      }
      else if (item.Length == 0)
      {
          keys[i] = "";
          values[i] = "";
      }
       }
       return 0;
   }
}


    
 
 

您可能感兴趣的文章:

  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  • windows下c/c++读写锁实现原理及代码参考
  • 映射内存的读写排他怎么实现
  • 怎样编程实现I/O端口的读写?
  • java中如何实现串口读写?
  • Java中有没有什么类来实现读写注册表文件?
  • 串口16进制不能实现读写?在线等待立刻给分
  • Thinkphp实现MySQL读写分离操作示例
  • 多个进程对系统V共享内存进行读写,怎样实现对共享内存部分进行加解锁?
  • 使用mmap可以读写文件,这是怎么实现的?
  • java中如何实现读写类似vc中结构数据?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • socket实现多文件并发传输,求助多线程实现问题?
  • linux内存文件系统ramfs实现原理
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • linux下如实现与window下的驱动器实现文件共享??
  • 如何在其他盘中实现对这个盘中所有文件和文件的8映射
  • php实现文件下载简单示例(代码实现文件下载)
  • 如何用Java实现二进制文件到文本文件的相互转化?
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 急!如何编程实现pdf文件转html文件?
  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • 请问如何实现将一个文件中的某一行拷贝到另一个文件中?答对定给分!
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • 实现core文件自动生成配置文件的方法
  • 用户通过mozilla访问页面文件,提交的参数要记录到系统的配置文件中去,如何来实现这个接口?
  • 如新建一个文件夹里面有a.txt b.txt 然后将这个文件夹删除。用一句来实现怎么写啊?
  • 求助 shell中split命令如何实现文件分割 并统计分割文件个数。分割完之后,命名方式从 文件名.001 开始
  • sftp实现两台主机之间传输文件(把一个主机中的文件拷贝到另一个)
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • interface 到底有什么用???实现接口,怎么实现??
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 怎么用Jsp实现在页面实现树型结构?
  • 通过javascript库JQuery实现页面跳转功能代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • Linux内存文件系统(ramdisk)的三种实现方式 iis7站长之家
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3