ini配置文件的读取
生活随笔
收集整理的這篇文章主要介紹了
ini配置文件的读取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
.ini 文件是Initialization File的縮寫,即初始化文件。是windows的系統配置文件所采用的存儲格式,統管windows的各項配置,一般用戶就用windows提供的各項圖形化管理界面就可實現相同的配置了,但在某些情況,還是要直接編輯.ini才方便,一般只有很熟悉windows才能去直接編輯。開始時用于WIN3X下面,WIN95用注冊表代替,以及后面的內容表示一個節,相當于注冊表中的鍵。
現在我們的電腦里面已經用注冊表來代替了ini文件的配置,但是我們在一些程序里面ini文件還是無法代替的
有一個setting.ini文件在運用程序.exe同目錄下
LANG]
language=zh-Hans
[LOGIN]
serverIP=你需要的服務器IP地址
userName=chaoyue
userPass=
[MAPINFO]
web1lat=34.2638
web1lng=108.9469
web2lat=34.2638
web2lng=108.9469
web1zoom=
web2zoom=
web1southWestlat=10.055402736564236
web1northEastlat=53.067626642387374
web1southWestlng=58.798828125
web1northEastlng=159.08203125
web2southWestlat=23.32208001137843
web2northEastlat=43.96119063892024
web2southWestlng=81.298828125
web2northEastlng=136.669921875
ini文件的格式
格式 INI文件由節、鍵、值組成。
節
[section]
參數(鍵=值)
name=value
注解
注解使用分號表示(;)。在分號后面的文字,直到該行結尾都全部為注解。
; comment textINI文件的數據格式的例子(配置文件的內容) [Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName21=value21
KeyName22=value22
其中:
[Section1 Name]用來表示一個段落。
因為INI文件可能是項目中共用的,所以使用[Section Name]段名來區分不同用途的參數區。例如:[Section1 Name]表示傳感器靈敏度參數區;[Section2 Name]表示測量通道參數區等等。
KeyName1=value1 用來表示一個參數名和值。
比如:
7033=50
7034=51
其中:
7033表示某傳感器名,50表示它的靈敏度值。
7034表示另一只傳感器名,51表示它的靈敏度值。
了解了ini的文件格式了,那么現在就用一個類來操作它
cIni:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
namespace 你的命名空間
{
class CIni
{
//聲明讀寫INI文件的API函數
public string path;
public CIni()
{
}
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// ini文件編寫器
/// </summary>
/// <param name="section">查找ini文件的節點[]名</param>
/// <param name="key">節點下邊的鍵</param>
/// <param name="val">節點的值</param>
/// <param name="filePath">來自的文件</param>
public void WriterINI(string section, string key, string val,string filePath)
{
path = System.Environment.CurrentDirectory + "\\" + filePath;
WritePrivateProfileString(section, key, val, path);
}
/// <summary>
/// 讀取Ini文件
/// </summary>
/// <param name="section">獲得節點</param>
/// <param name="key">節點下邊的鍵</param>
/// <param name="filePath">文件路徑</param>
/// <returns>返回的值</returns>
public string ReadINI(string section, string key, string filePath)
{
path = System.Environment.CurrentDirectory + "\\" + filePath;
StringBuilder temp = new StringBuilder();
GetPrivateProfileString(section, key, "", temp, , path);
return temp.ToString().Trim();
}
}
}
用法:
/// <summary>
/// 讀取Ini文件
/// </summary>
/// <param name="strConet">字段</param>
/// <param name="order"></param>
private void WriterINI(string strConet, int order)
{
GetNextToken(ref strConet, ",");
CIni ini = new CIni();
if (order == )
{
ini.WriterINI("MAPINFO", "web1lat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1lng", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1zoom", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1southWestlat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1northEastlat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1southWestlng", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web1northEastlng", GetNextToken(ref strConet, ","), "Setting.ini");
}
else
{
ini.WriterINI("MAPINFO", "web2lat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2lng", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2zoom", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2southWestlat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2northEastlat", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2southWestlng", GetNextToken(ref strConet, ","), "Setting.ini");
ini.WriterINI("MAPINFO", "web2northEastlng", GetNextToken(ref strConet, ","), "Setting.ini");
}
}
////GetNextToken方法
private string GetNextToken(ref string strContent, string strDelim)
{
string str = "";
int idx = strContent.IndexOf(strDelim, , strContent.Length);
if (idx > )
{
str = strContent.Substring(, idx);
strContent = strContent.Remove(, idx + );
}
else
{
str = strContent;
}
return str;
}
/// <summary>
/// 設置ini文件
/// </summary>
private void SetCenter()
{
CIni ini = new CIni();
string strweb1lat = ini.ReadINI("MAPINFO", "web1lat", "Setting.ini");
string strweb1lng = ini.ReadINI("MAPINFO", "web1lng", "Setting.ini");
string strweb1zoom = ini.ReadINI("MAPINFO", "web1zoom", "Setting.ini");
string strweb2lat = ini.ReadINI("MAPINFO", "web2lat", "Setting.ini");
string strweb2lng = ini.ReadINI("MAPINFO", "web2lng", "Setting.ini");
string strweb2zoom = ini.ReadINI("MAPINFO", "web2zoom", "Setting.ini");
//你的方法寫在這里.....
}
以前常用ini來做配置文件,現在打都是在用config 來作為配置文件
總結
以上是生活随笔為你收集整理的ini配置文件的读取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么就能监控车辆出入情况?
- 下一篇: 为什么国v汽油耗油?