1.前言:
本範例介紹另一種讀取ini檔案的方法,利用StreamReader及Regular Expression的方法讀取檔案內容。

2.說明:
利用Windows API來讀取標準的ini檔案可參考
http://einboch.pixnet.net/blog/post/250128728

程式碼:

static void Main(string[] args)
{
	//檔案位置與名稱
	string fileName = @"d:\tmp\myConfig.ini";
	//呼叫方法
	string ValueString = GetKeyValueString(fileName, "Database", "server");

	Console.WriteLine(ValueString);
	Console.ReadLine();
}

private static string GetKeyValueString(string fileName, string Section, string Key)
{
	StringBuilder value = new StringBuilder(255);
	bool hasSection = false;

	//開啟IO串流
	StreamReader sr = new StreamReader(fileName, Encoding.UTF8);
	while (true)
	{
		string s = sr.ReadLine();

		//空值或空字串判斷
		if (s == null || s == "")
		{
			continue;
		}

		//以;或是#開頭作註解的判斷
		if (Regex.Match(s, @"^(;|#).*$").Success)
		{
			continue;
		}

		//讀取[Section]
		if (Regex.Match(s, @"^\[.*\]").Success)
		{
			//判斷Section名稱是否符合
			if (Regex.Match(s, Section).Success)
			{
				hasSection = true;
			}
		}

		//如果Section存在,才去判斷Key
		if (hasSection)
		{
			string[] KeyValue = s.Split('=');

			//判斷Key名稱是否符合
			if (Regex.Match(KeyValue[0].Trim(), Key).Success)
			{
				value.Append(KeyValue[1].Trim());
				break;
			}
		}
	}

	//關閉IO串流
	sr.Close();

	return value.ToString();
}

圖例:

ini_reader  

arrow
arrow
    文章標籤
    C# Ini StreamReader
    全站熱搜

    西夏普 發表在 痞客邦 留言(0) 人氣()