system.ini包括窗口环境文件吗(C操作ini文件)

★Ini文件简介.ini 文件是Initialization File的缩写,即初始化文件是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能它可以用来存放软件信息,注册表信息,配置信息等,下面我们就来说一说关于system.ini包括窗口环境文件吗?我们一起去了解并探讨一下这个问题吧!

system.ini包括窗口环境文件吗(C操作ini文件)

system.ini包括窗口环境文件吗

★Ini文件简介

.ini 文件是Initialization File的缩写,即初始化文件。是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息,配置信息等。

★Ini文件格式

INI文件由节、键、值组成。(ini文件内容不区分大小写)

节(段落)

  [section]

参数(键=值)

  name=value

注解

注解使用分号(英文分号)表示(;)。在分号后面的文字,直到该行结尾都全部为注解。  

★示例

以下为一个简单的ini文件(abc.ini)的内容(ini文件可以用记事本打开、修改)

[Section1]

KeyName1=value1

KeyName2=value2

;这里是注释

  [Section2 Name]

KeyName21=value21

KeyName22=value22

其中:[Section1]、[Section2 Name]用来表示一个段落。因为INI文件可能是项目中共用的,所以使用[段名]来区分不同用途的参数区。例如:[Section1]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。   

KeyName1=value1用来表示一个参数名和值。比如:7033=50 7034=51 其中:   7033表示某传感器名,50表示它的灵敏度值。7034表示另一只传感器名,51表示它的灵敏度值。

C#操作ini文件完整代码并详细注释

使用时,只需IniFunc.方法名(实参列表)即可

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using System.Runtime.InteropServices;

namespace CommFunc

{

/// <summary>

/// 操作ini文件

/// </summary>

public class IniFunc

{

/// <summary>

/// 读操作读取字符串

/// </summary>

/// <param name="section">要读取的段落名</param>

/// <param name="key">要读取的键</param>

/// <param name="defVal">读取异常的情况下的缺省值;如果Key值没有找到,则返回缺省的字符串的地址</param>

/// <param name="retVal">key所对应的值,如果该key不存在则返回空值</param>

/// <param name="size">返回值允许的大小</param>

/// <param name="filePath">INI文件的完整路径和文件名</param>

/// <returns></returns>

[DllImport("kernel32")]

private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);

/// <summary>

/// 读操作读取整数

/// </summary>

/// <param name="lpAppName">指向包含Section 名称的字符串地址</param>

/// <param name="lpKeyName">指向包含Key 名称的字符串地址</param>

/// <param name="nDefault">如果Key 值没有找到,则返回缺省的值是多少</param>

/// <param name="lpFileName">INI文件的完整路径和文件名</param>

/// <returns>返回获得的整数值</returns>

[DllImport("kernel32")]

private static extern int GetPrivateProfileInt(string lpAppName, string lpKeyName, int nDefault, string lpFileName);

/// <summary>

/// 写操作

/// </summary>

/// <param name="section">要写入的段落名</param>

/// <param name="key">要写入的键,如果该key存在则覆盖写入</param>

/// <param name="val">key所对应的值</param>

/// <param name="filePath">INI文件的完整路径和文件名</param>

/// <returns></returns>

[DllImport("kernel32")]

private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath);

/// <summary>

/// 获得整数值

/// </summary>

/// <param name="section">要读取的段落名</param>

/// <param name="key">要读取的键</param>

/// <param name="def">如果Key 值没有找到,则返回缺省的值是多少</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

/// <returns></returns>

public static int GetInt(string section, string key, int def, string fileName)

{

return GetPrivateProfileInt(section, key, def, fileName);

}

/// <summary>

/// 获得字符串值,默认返回长度为1024

/// </summary>

/// <param name="section">要读取的段落名</param>

/// <param name="key">要读取的键</param>

/// <param name="def">如果Key 值没有找到,返回的默认值</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

/// <returns></returns>

public static string GetString(string section, string key, string def, string fileName)

{

StringBuilder temp = new StringBuilder(1024);

GetPrivateProfileString(section, key, def, temp, 1024, fileName);

return temp.ToString();

}

/// <summary>

/// 获得字符串值,返回长度用户自定义

/// </summary>

/// <param name="section">要读取的段落名</param>

/// <param name="key">要读取的键</param>

/// <param name="def">如果Key 值没有找到,返回的默认值</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

/// <param name="size">用户自定义返回的字符串长度</param>

/// <returns></returns>

public static string GetString(string section, string key, string def, string fileName, int size)

{

StringBuilder temp = new StringBuilder();

GetPrivateProfileString(section, key, def, temp, size, fileName);

return temp.ToString();

}

/// <summary>

/// 写整数值

/// </summary>

/// <param name="section">要写入的段落名</param>

/// <param name="key">要写入的键,如果该key存在则覆盖写入</param>

/// <param name="iVal">key所对应的值</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

public static void WriteInt(string section, string key, int iVal, string fileName)

{

WritePrivateProfileString(section, key, iVal.ToString(), fileName);

}

/// <summary>

/// 写字符串的值

/// </summary>

/// <param name="section">要写入的段落名</param>

/// <param name="key">要写入的键,如果该key存在则覆盖写入</param>

/// <param name="strVal">key所对应的值</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

public static void WriteString(string section, string key, string strVal, string fileName)

{

WritePrivateProfileString(section, key, strVal, fileName);

}

/// <summary>

/// 删除指定的key

/// </summary>

/// <param name="section">要写入的段落名</param>

/// <param name="key">要删除的键</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

public static void DelKey(string section, string key, string fileName)

{

WritePrivateProfileString(section, key, null, fileName);

}

/// <summary>

/// 删除指定的段落

/// </summary>

/// <param name="section">要删除的段落名</param>

/// <param name="fileName">INI文件的完整路径和文件名</param>

public static void DelSection(string section, string fileName)

{

WritePrivateProfileString(section, null, null, fileName);

}

}

}

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页