C stl 讀寫ini配置檔案

2021-05-24 03:03:08 字數 2668 閱讀 2352

標頭檔案(inifile.h)

複製**

#ifndef __cini_file__

#define __cini_file__

#include

#include

using namespace std;

/*程式說明

1.從ini檔案中讀取引數

2.將引數寫入ini格式檔案

3.[sectin]必須第乙個字元為'[',並以']'結束

4.';'後的字串全部為注釋

5.引數以name=value的方式表示,每一行只能設定乙個引數,'='不能含有空格

6.沒有對程式中注釋做額外的處理,在寫入檔案時,沒有考慮將注釋寫入ini檔案

7.關於ini檔案格式定義請參考:

*///引數行

struct cinientry

cinientry(char* szname,char* szvalue):m_strname(szname),m_strvalue(szvalue){}

string m_strname;

string m_strvalue;

};//注釋行

struct cinicomment

cinicomment(char* strcmt):m_strcomment(strcmt){}

string m_strcomment;

};//section

struct cinisection

;class cinifile

;#endif

實現檔案(inifile.cpp)

複製**

#include "inifile.h"

#include

using namespace std;

//一行最大字元數為260

#define max_cols 260

#define e_ok                0x00l

#define e_open_file_failed    0x01l

/*功能

讀取ini檔案

引數szinifile    in    讀入的ini檔名稱

返回值e_ok                呼叫成功

e_open_file_failed    開啟檔案錯我

*/int cinifile::readinifile(char* szinifile)

char szline[max_cols] = ;

while (finifile.getline(szline,max_cols))

//是否為;

trim( p );

if( *p == ';')

//否則視為entry

//p = szline;

char* ptemp = strchr( p,'=');

if(ptemp == null)

*ptemp = 0;

//建立乙個entry

cinientry ie;

ie.m_strname = p ;

ie.m_strvalue = ptemp + 1;

//將entry加入到響應的section

m_issection[m_issection.size() - 1 ].m_ieentry.push_back(ie);

memset(szline,0,max_cols);

}finifile.close();

return e_ok;}/*

功能將cinifile中的內容寫入檔案

引數szinifile    in    生成的ini檔名稱

返回值e_ok        呼叫成功

e_open_file_failed    開啟檔案錯誤

*/int cinifile::writeinifile(char* szinifile)

}finifile.close();

return e_ok;}/*

功能刪除前後的空格(' ','/t','/r','/n')

引數szstring        in    傳入的字串

out 去除空格後的字串

返回值e_ok    呼叫成功

*/int cinifile::trim(char* &szstring)

szstring = p;

p = szstring + strlen(szstring) - 1;

while ( *p == ' ' || *p == '/t' || *p == '/r' || *p == '/n')

*( p + 1 ) = 0;

return e_ok;}/*

功能刪除注釋

引數szline    in    傳入的字串

out 刪除注釋後的字串

返回值e_ok    呼叫成功

*/int cinifile::removecomment(char* szline)

測試**

複製**

cinifile cf;

cf.readinifile("inifile.ini");

cf.writeinifile("inifile2.ini");

讀寫配置檔案 ini

配置檔案中經常用到ini檔案,在vc中其函式分別為 其中個引數的意思 lpctstr lpstring 是鍵值,也就是變數的值,必須為lpctstr或cstring型別 lpctstr lpfilename 完整的ini檔案路徑名 lpctstr lpdefaut 如果沒有其前兩個引數值,則將此值賦...

讀寫配置檔案 ini

在我們寫的程式當中,總有一些配置資訊需要儲存下來,以便完成程式的功能,最簡單的辦法就是將這些資訊寫入ini檔案中,程式初始化時再讀入.具體應用如下 一.將資訊寫入.ini檔案中.1.所用的winapi函式原型為 bool writeprivateprofilestring lpctstr lpkey...

讀寫INI配置檔案

在一些c s程式中我們經常會使用ini配置檔案 優點 1.靈活。2.相對於一些資料量的程式,相對使用資料庫更節約資源。配置檔案操作類 internal static class operconfigfile path.getdirectoryname assembly.getexecutingass...