IniHelper
/// <summary>
/// ini文件操作类
/// </summary>
public class IniHelper
{
#region 动态链接库调用
/// <summary>
/// 调用动态链接库读取值
/// </summary>
/// <param name="lpAppName">ini节名</param>
/// <param name="lpKeyName">ini键名</param>
/// <param name="lpDefault">默认值:当无对应键值,则返回该值。</param>
/// <param name="lpReturnedString">结果缓冲区</param>
/// <param name="nSize">结果缓冲区大小</param>
/// <param name="lpFileName">ini文件位置</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName); /// <summary>
/// 调用动态链接库写入值
/// </summary>
/// <param name="mpAppName">ini节名</param>
/// <param name="mpKeyName">ini键名</param>
/// <param name="mpDefault">写入值</param>
/// <param name="mpFileName">文件位置</param>
/// <returns>0:写入失败 1:写入成功</returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(
string mpAppName,
string mpKeyName,
string mpDefault,
string mpFileName);
#endregion /// <summary>
/// 读ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <returns>返回读取值</returns>
public static string IniRead(string section, string key, string path)
{
StringBuilder stringBuilder = new StringBuilder(); //定义一个最大长度为1024的可变字符串
GetPrivateProfileString(section, key, "", stringBuilder, , path); //读取INI文件
return stringBuilder.ToString(); //返回INI文件的内容
} /// <summary>
/// 写ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="iValue">待写入值</param>
public static void IniWrite(string section, string key, string iValue, string path)
{
WritePrivateProfileString(section, key, iValue, path); //写入
} /// <summary>
/// 根据文件名创建文件
/// </summary>
/// <param name="path">文件名称以及路径</param>
public static void iniCreat(string path)
{
if (!File.Exists(path)) //判断是否存在相关文件
{
FileStream _fs=File.Create(path); //不存在则创建ini文件
_fs.Close(); //关闭文件,解除占用
}
} /// <summary>
/// 删除ini文件中键
/// </summary>
/// <param name="section">节名称</param>
/// <param name="key">键名称</param>
/// <param name="path">ini文件路径</param>
public static void IniDelKey(string section,string key, string path)
{
WritePrivateProfileString(section, key, null, path); //写入
} /// <summary>
/// 删除ini文件中节
/// </summary>
/// <param name="section">节名</param>
/// <param name="path">ini文件路径</param>
public static void IniDelSection(string section, string path)
{
WritePrivateProfileString(section, null, null, path); //写入
}
}
IniHelper的更多相关文章
- IniHelper——INI操作辅助类
使用INI配置文件,简单便捷. 该辅助工具类为C#操作INI文件的辅助类,源码在某位师傅的基础上完善的来,因为忘记最初的来源了,因此不能提及引用,在此深感遗憾,并对贡献者表示感谢. using Sys ...
- 关于C#调用非托管动态库方式的性能疑问
最近的项目中,因为一些原因,需要C#调用非托管(这里为C++)的动态库.网上喜闻乐见的方式是采用静态(DllImport)方式进行调用.偶然在园子里看到可以用动态(LoadLibrary,GetPro ...
- 基于EasyUI的Web应用程序及过去一年的总结
前言 在这家公司服务了一年时间,一个多月之前已经提交了离职申请,好在领导都已经批准了,过几天就办理手续了,在此感谢领导的栽培与挽留,感谢各位同事在工作中的给我的帮助,感谢师傅(在我心中当他是我师傅,跟 ...
- 基于正则的INI读写工具类,支持加密解密
看到这个标题,有人会问,现在都用xml做配置文件了,谁还用INI文件啊!下面来简单对比一下xml和ini: 1.XML功能强大表达能力强,同时扩展性好. 2.它的主要优势是异构平台的整合.通讯. 3. ...
- C#访问配置文件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- C#操作ini
/// <summary> /// 读写INI文件的类. /// </summary> public class INIHelper { // 读写INI文件相关. [DllI ...
- WinForms 小型HTML服务器
最近教学,使用到了Apache和IIS,闲着无聊,有种想自己写个小服务器的冲动. 在网上找了半天的资料,最后终于搞定了,测试可以访问.效果图如下: 因为只是处理简单的请求,然后返回请求的页面,所以没有 ...
- 原创 C# 正则表达式 读写 Ini 文件
昨天遇到读ini文件的问题,我知道C#里没有提供相应的类,所有的.net配置都是xml方式存储的. 读取ini文件,很多人直接google一把,然后添加dll引用.介绍的比较详细的,如: C#如何读写 ...
- Ini文件帮助类
.ini文件是什么 .ini 文件是Initialization File的缩写,就是初始化文件.在Windows系统中,其是配置文件所采用的存储格式(主要是system.ini,win.ini,sy ...
随机推荐
- 数据分析:基于Python的自定义文件格式转换系统
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 通过__block的作用深入研究block
block普通引用 默认情况下,在block中访问外部变量是通过复制一个变量来操作的,既可以读,但是写操作不对原变量生效,下面通过代码来举证 NSString *a = @"testa&qu ...
- (原创)Rocketmq分布式消息队列的部署与监控
-------------------------------------------------------------------------------------------- 一.Rocke ...
- Jquery Post提交时Content-Type的不同取值详解
四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下 ...
- 数字签名与HTTPS详解
因为HTTP协议本身存在着明文传输.不能很好的验证通信方的身份和无法验证报文的完整性等一些安全方面的确点,所以才有了HTTPS的缺陷.HTTPS确切的的说不是一种协议,而是HTTP + SSL (TS ...
- 11个超震撼的HTML5和纯CSS3动画源码
1.jQuery多功能手风琴个人信息菜单面板 这是一款基于jQuery的手风琴个人信息菜单面板,每一个菜单项展开后可以自定义布局,因此可以为每一个菜单项实现多功能.类似这样的多功能菜单还有jQuery ...
- spring相关面试题
1.spring有依赖的bean,怎么加载? 2.spring怎么解决循环依赖? https://blog.csdn.net/u010853261/article/details/77940767 h ...
- windows redis 连接错误Creating Server TCP listening socket 127.0.0.1:637 9: bind: No error
报错信息如下: [10036] 30 Dec 10:23:49.616 # Creating Server TCP listening socket 127.0.0.1:637 9: bind: No ...
- OSPF进程号的意义及多进程OSPF
OSPF进程号的意义及多进程OSPF—吴锦霖分享 1. OSPF进程号的概念 在配置OSPF时,我们采用的是router ospf命令,在该命令后面需要加上这个OSPF进程的进程号(Proces ...
- C++中常用的std标准容器
从c++11标准以来,c++中std定义的几种容器的效率非常高,优化的非常好,完全没有必要自己去定义类似的数据结构.了解使用它们,可以满足90%的日常编程需要.该篇文章基于c++11标准,从用户角度来 ...