c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)
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下载)的更多相关文章
- 引用“kernel32”读写ini配置文件
引用"kernel32"读写ini配置文件 unity ini kernel32 配置文件 引用"kernel32"读写ini配置文件 OverView ke ...
- 读写ini文件
C# 使用文件流来读写ini文件 背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI ...
- 如何在C#中读写INI文件
INI文件就是扩展名为"ini"的文件.在Windows系统中,INI文件是很多,最重要的就是"System.ini"."System32.ini&q ...
- C# 使用文件流来读写ini文件
背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI封装的help类,用起来倒也顺手. ...
- C# 读写INI 文件
INI 格式: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = V ...
- C#中读写INI文件
C#中读写INI文件 c#的类没有直接提供对ini文件的操作支持,可以自己包装win api的WritePrivateProfileString和GetPrivateProfileString函数实现 ...
- VB读写INI文件的四个函数以及相关API详细说明
WritePrivateProfileString函数说明 来源:http://blog.csdn.net/wjb9921/article/details/2005000 在我们写的程序当中,总有一 ...
- Windows中读写ini文件
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,来配置应用软件以实现不同用户的要求.配置文件有很多种如ini配置文件,XML ...
- Python 用configparser读写ini文件
一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...
随机推荐
- Apache虚拟主机配置,实现多域名访问本地项目PHP空间,以及配置403Forbidden等错误的解决办法
第一步: apache主配置文件修改: 用文本编辑器打开apache的conf目录下 httpd.conf 将下面以下代码取消注释 LoadModule rewrite_module modules ...
- POJ 3233 Matrix Power Series(矩阵等比求和)
题目链接 模板题. #include <cstdio> #include <cstring> #include <iostream> #include <ma ...
- UVA 10791 Minimum Sum LCM(分解质因数)
最大公倍数的最小和 题意: 给一个数字n,范围在[1,2^23-1],这个n是一系列数字的最小公倍数,这一系列数字的个数至少为2 那么找出一个序列,使他们的和最小. 分析: 一系列数字a1,a2,a3 ...
- windows 安装MySql
转载:http://blog.csdn.net/longyuhome/article/details/7913375 Win7系统安装MySQL5.5.21图解 大家都知道MySQL是一款中.小型关系 ...
- php+ajax 登录注册页面
主要是登录注册功能,前端后台验证没有什么,这个大家可以自己加上去,比如过滤啊,正则啊等 还是先放图吧 这是登录及注册界面 点击注册切换到注册界面,点击登录切换到登录界面 <!DOCTYPE h ...
- java 输入年月,获取日历表
/* 做日历作业: 输入一个时间如: 2016-11 就显示2016年11月的日历显示 */ import java.util.*; class calendar { public static vo ...
- linux添加环境变量(centos)
1.查看当前环境变量 #echo $PATH 2.增加环境变量 #vi /etc/profile export PATH=/usr/path/bin:$PATH 3.生效 #source /etc/p ...
- 用onerror处理图片获取失败问题
<script> function errorImg(){ //当前事件的源 var obj=event.srcElement; //需要修改的图片的url obj.src="h ...
- WordPress基础:小工具的使用
通过外观->小工具对挂件区域的内容进行调整 比如添加个日历模块 保存后前台就会显示出来 如果不需要,反过来,把模块拖到左边就可以了.
- iPhone的CSS3媒体查询
iPhone的CSS3媒体查询: 各版本的iPhone媒体查询是根据其分辨率和一些CSS3媒体查询的特性来实现媒体查询的...详见下: iPhone6的媒体查询: @media only screen ...