日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ini配置文件的读取

發布時間:2024/8/24 编程问答 34 如意码农
生活随笔 收集整理的這篇文章主要介紹了 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配置文件的读取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。