您的位置:首页 > 编程语言 > C#

C# 读写ini文件

2008-10-22 09:38 716 查看
由于C#的类库中并不包含读取INI文件的类,用C#读取INI文件必须要用到windows的API函数,所以在声明windows的API函数时必须

using System.Runtime.InteropServices;

    [DllImport("kernel32")]

        private static extern bool WritePrivateProfileString(

            string lpAppName,

            string lpKeyName,

            string lpString,

            string lpFileName

        );

     [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(
            string section,
            string key,
            string def,
            StringBuilder retVal,
            int size,
            string filePath
        );

一.将信息写入.INI文件中.
  1.所用的WINAPI函数原型为:

BOOL WritePrivateProfileString(

     LPCTSTR lpAppName,

     LPCTSTR lpKeyName,

     LPCTSTR lpString,

     LPCTSTR lpFileName

); 

  其中各参数的意义:
   LPCTSTR lpAppName 是INI文件中的一个字段名.
   LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.
   LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.
   LPCTSTR lpFileName 是完整的INI文件名.

 

  2.具体使用方法:设现有一名学生,需把他的姓名和年龄写入 c:/test.ini 文件中.

string strName,;

strName = "张三";
WritePrivateProfileString("StudentInfo", "Name", strName, "C://test.ini");
        此时c:/test.ini 文件中的内容如下:
            [StudentInfo]
   Name=张三

 

二.将信息从INI文件中读入程序中的变量.
  1.所用的WINAPI函数原型为:

  DWORD GetPrivateProfileString(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    LPCTSTR lpDefault,
    LPTSTR lpReturnedString,
    DWORD nSize,
    LPCTSTR lpFileName
  );

  其中各参数的意义:
   前二个参数与 WritePrivateProfileString中的意义一样.

   lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
   lpReturnedString : 接收INI文件中的值的String对象,即目的缓存器.
   nSize : 目的缓存器的大小.
   lpFileName : 是完整的INI文件名.

 

  2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.

StringBuilder strStudName = new StringBuilder(100);

GetPrivateProfileString("StudentInfo", "Name","默认姓名", strStudName, 100, "c://test.ini"); 

      执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ini c# winapi string windows api