程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> c#使用WINAPI進行讀取寫入配置文件

c#使用WINAPI進行讀取寫入配置文件

編輯:關於C#

我們c#讀寫配置文件通常用IO對文件進行讀寫。我覺得使用winapi的Kernel32.dll 對ini文件讀取更好更方便一些

對ini文件讀寫 我們可以使用Kernel32.dll 中的WritePrivateProfileString(寫入),GetPrivateProfileString(讀入字符串) ,GetPrivateProfileInt(讀入整型值)三個方法。下面我介紹著三個方法

一.將信息寫入.INI文件中.

1.所用的WINAPI函數為: WritePrivateProfileString

[DllImport("Kernel32.dll")]

public static extern bool WritePrivateProfileString(string strAppName,

string strKeyName,

string strString,

string strFileName);

其中各參數的意義:

string strAppName, 是INI文件中的一個字段名.

string strKeyName,是strAppName下的一個鍵名,通俗講就是變量名.

string strString,是鍵值,也就是變量的值(string類型的)

string strFileName 是完整的INI文件路徑名.

2.具體使用方法:設我有一個網頁刷新器. 我要保存我設置的網頁(URL),和間隔時間(time)

WritePrivateProfileString("Settings", "Url", "http://wenti.cnblogs.com","c:\\config.ini");

WritePrivateProfileString("Settings", "Time", "20","c:\\config.ini");

保存的ini文件中的內容如下:

[Settings]

Url=http://wenti.cnblogs.com

Time=20

二.將信息從INI文件中讀入程序中的變量.

1.所用的WINAPI函數原型為: 

[DllImport("Kernel32.dll")]

public static extern int GetPrivateProfileString(string strAppName,

string strKeyName,

string strDefault,

StringBuilder sbReturnString,

int nSize,

string strFileName);

其中各參數的意義:

前二個參數與 WritePrivateProfileString中的意義一樣.

strDefault : 如果INI文件中沒有前兩個參數指定的字段名或鍵名,則將此值賦給變量.

 strReturnedString : 接收INI文件中的值的string對象,即目的緩存器.

nSize : 目的緩存器的大小.

strFileName : 是完整的INI文件路徑名.

2.具體使用方法:現要將上一步中寫入的信息讀入程序中.

StringBuilder sb = new StringBuilder(256);

GetPrivateProfileString("Settings", "Url", "http://", sb, 256,c:\\config.ini");

GetPrivateProfileString("Settings", "Time", "10", sb, 256,c:\\config.ini");

執行後 sb的值為:"http://wenti.cnblogs.com",若前兩個參數有誤,其值為:"http://".

3.讀入整型值要用另一個WINAPI函數: 

[DllImport("Kernel32.dll")]

public static extern int GetPrivateProfileInt(string strAppName,

string strKeyName,

int nDefault,

string strFileName);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved