• C#读取ini配置文件


    .NET Framework 类库未提供读写ini文件的相应类,不过可以使用WinAPI来处理INI文件的读写,代码很简单。如下:

      首先有两个API函数需放在你的class中且只能如此,放在method或(class外namespace内),都会出现编译错误:

      1 using System.Runtime.InteropServices;

      2 [DllImport("kernel32")]

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

      4 [DllImport("kernel32")]

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

      WritePrivateProfileString方法说明:

      功能:将信息写入ini文件

      返回值:long,如果为0则表示写入失败,反之成功。

      参数1(section):写入ini文件的某个小节名称(不区分大小写)。

      参数2(key):上面section下某个项的键名(不区分大小写)。

      参数3(val):上面key对应的value

      参数4(filePath):ini的文件名,包括其路径(example: "c:\config.ini")。如果没有指定路径,仅有文件名,系统会自动在windows目录中查找是否有对应的ini文件,如果没有则会自动在当前应用程序运行的根目录下创建ini文件。

      ini文件结构Example:

      [JXCDB]    --小节名(section)

      server=192.168.1.1    --server是JXCDB下的某个键,192.168.1.1是server键的值(下同)

      name=sa

      pwd=198910

      dbName=JXC

      GetPrivateProfileString方法使用说明:

      功能:从ini文件中读取相应信息

      返回值:返回所取信息字符串的字节长度

      参数1(section):某个小节名(不区分大小写),如果为空,则将在retVal内装载这个ini文件的所有小节列表。

      参数2(key):欲获取信息的某个键名(不区分大小写),如果为空,则将在retVal内装载指定小节下的所有键列表。

      参数3(def):当指定信息,未找到时,则返回def,可以为空。

      参数4(retVal):一个字串缓冲区,所要获取的字符串将被保存在其中,其缓冲区大小至少为size。

      参数5(size):retVal的缓冲区大小(最大字符数量)。

      参数6(filePath):指定的ini文件路径,如果没有路径,则在windows目录下查找,如果还是没有则在应用程序目录下查找,再没有,就只能返回def了。

      详细使用Example:

      首先先创建一个ini文件,并保存信息:

      1 WritePrivateProfileString("JXCDB", "server", ".", Application.StartupPath + "\\JXC_Server.ini");

      2 WritePrivateProfileString("JXCDB", "name", txtName.Text.Trim(), Application.StartupPath + "\\JXC_Server.ini");

      3 WritePrivateProfileString("JXCDB", "pwd",txtPwd.Text.Trim(), Application.StartupPath + "\\JXC_Server.ini");

      4 WritePrivateProfileString("JXCDB", "DBName", "JXC", Application.StartupPath + "\\JXC_Server.ini");

      说明:Application.StartupPath获取当前项目编译出的exe文件的绝对路径(不包含exe文件的文件名)

      读取ini文件:

      1 StringBuilder stringBud = new StringBuilder(50);

      2 GetPrivateProfileString("JXCDB", "server", "还未设置服务器IP", stringBud, 50, Application.StartupPath + "\\JXC_Server.ini");

      此时所读取的server键对应的值已被保存在stringBud中,只需:

      1 return stringBud.ToString();

      InI基本应用就这样,很简单吧。

          转载于



    返回导读目录,阅读更多随笔



    分割线,以下为博客签名:

    软件臭虫情未了
    • 编码一分钟
    • 测试十年功


    随笔如有错误或不恰当之处、为希望不误导他人,望大侠们给予批评指正。

  • 相关阅读:
    梦断代码阅读笔记之一
    你的灯亮着吗阅读笔记之三
    第二次冲刺第八天
    第二次冲刺第七天
    价格计算
    第二次冲刺第六天
    构建之法阅读笔记06
    第二阶段冲刺第五天
    第二阶段冲刺第四天
    第二阶段冲刺第三天
  • 原文地址:https://www.cnblogs.com/08shiyan/p/1837487.html
Copyright © 2020-2023  润新知