c# 利用动态库DllImport("kernel32")读写ini文件

  自从读了设计模式,真的会改变一个程序员的习惯。我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习惯能看出一个程序员的经验。说啥呢,为啥又会说说设计模式去了呢,好吧,咱是来讨论读写ini文件的。
  为什么要来讨论读写ini文件呢,难道有数据库我们就不用读写文件了吗,什么数据都从数据库读取出来吗,有些东西是根据客户的习惯,就没必要去读取数据库了,或者说,比如你要做一个记住密码的功能,如果在web端,你还可以用cookie这东西,但是要是winform呢,这时候ini文件就可以派上用场了。我们可以把用户和密码存在ini文件里。
  ini的格式由节、键、值组成,例:节[section] 参数(键=值) name=value。当然,一个节里面可以有几对参数。

先来看INI文件操作类代码:

/// <summary>
/// INI文件操作类
/// </summary>
public class INIClass
{
[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);
/// <summary>
/// ini文件路径
/// </summary>
public string inipath;
public INIClass()
{ }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="INIPath">ini文件路径</param>
public INIClass(string INIPath)
{
this.inipath = INIPath;
}
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name="section">项目名称(如[TypeName])</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
public void IniWriteValue(string section, string key, string value)
{
WritePrivateProfileString(section, key, value, this.inipath);
}
/// <summary>
/// 读出INI文件
/// </summary>
/// <param name="section">项目名称(如[TypeName])</param>
/// <param name="key">键</param>
/// <returns>string</returns>
public string IniReadValue(string section, string key)
{
StringBuilder temp = new StringBuilder();
int i = GetPrivateProfileString(section, key, "", temp, , this.inipath);
return temp.ToString();
}
/// <summary>
/// 验证文件是否存在
/// </summary>
/// <returns>bool</returns>
public bool ExistINIFile()
{
return File.Exists(this.inipath);
}
}

下面是运行实例代码:

 public class IniClassDemo
{
private static readonly string filePath = @"document/testdemo.ini";
INIClass iC = new INIClass(filePath);
//判断文件是否存在
public bool IsExist()
{
return iC.ExistINIFile();
}
//写入INI文件
public void IniWrite(string section,string key,string value)
{
iC.IniWriteValue(section, key, value);
}
//读取INI文件内容
public string IniRead(string section,string key)
{
string temp = iC.IniReadValue(section, key);
return temp;
}
public void GoTo()
{
if (IsExist())
{
Console.WriteLine("文件存在 ");
IniWrite("test01", "aib", "gdaib");
Console.WriteLine("写入文件完毕,section=test01,key=aib,value=gdaib");
Console.WriteLine("读取刚写的文件,内容为: " + IniRead("test01", "aib"));
}
else
{
Console.WriteLine("文件不存在!");
}
} }

我用的是控制台程序,然后再Program里
    class Program
    {
        static void Main(string[] args)
        {
            IniClassDemo icdemo = new IniClassDemo();
            icdemo.GoTo();
        }
    }

  上面就是实现对Ini问价的读取操作,希望能帮到有需要的人啊。

c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)的更多相关文章

  1. 引用“kernel32”读写ini配置文件

    引用"kernel32"读写ini配置文件 unity ini kernel32 配置文件  引用"kernel32"读写ini配置文件 OverView ke ...

  2. 读写ini文件

    C# 使用文件流来读写ini文件 背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI ...

  3. 如何在C#中读写INI文件

    INI文件就是扩展名为"ini"的文件.在Windows系统中,INI文件是很多,最重要的就是"System.ini"."System32.ini&q ...

  4. C# 使用文件流来读写ini文件

    背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI封装的help类,用起来倒也顺手. ...

  5. C# 读写INI 文件

    INI 格式: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = V ...

  6. C#中读写INI文件

    C#中读写INI文件 c#的类没有直接提供对ini文件的操作支持,可以自己包装win api的WritePrivateProfileString和GetPrivateProfileString函数实现 ...

  7. VB读写INI文件的四个函数以及相关API详细说明

    WritePrivateProfileString函数说明  来源:http://blog.csdn.net/wjb9921/article/details/2005000 在我们写的程序当中,总有一 ...

  8. Windows中读写ini文件

    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,来配置应用软件以实现不同用户的要求.配置文件有很多种如ini配置文件,XML ...

  9. Python 用configparser读写ini文件

    一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...

随机推荐

  1. Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

    在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Securit ...

  2. Go语言练习:go语言与C语言的交互——cgo

    1.代码 package main import "fmt" /* #include <stdlib.h> #include <stdio.h> void ...

  3. Python标准异常topic

    Python标准异常topic AssertionError                            断言语句 (assert)                              ...

  4. Struts2基础数据校验和框架校验

    一:三种校验的方式 1.用validate()方法实现数据校验 2.用execute()方法实现数据校验 3.用validateXxx()方法实现数据校验 1.用validate()方法实现数据校验 ...

  5. lua元表与元方法

    lua中提供的元表(metatable)与元方法(metamethod)是一种非常重要的语法,metatable主要用于做一些类似于C++重载操作符式的功能. lua中提供的元表是用于帮助lua变量完 ...

  6. SDK Manager.exe闪退

    运行tools文件下android.bat. 修改tools文件下android.bat文件,再运行SDK Manager.exe

  7. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

  8. java基础总结——概述

      一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web ...

  9. vue-router 创建 vue 单页应用示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. java常见的开发工具

    http://www.csdn.net/article/1970-01-01/2824723 http://zhidao.baidu.com/link?url=D8FdJxeFd-z-LV1OfZuZ ...