欢迎来到天天文库
浏览记录
ID:50126268
大小:17.15 KB
页数:6页
时间:2020-03-04
《C语言读取INI配置文件.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言读取INI配置文件Ini.h#pragmaonce#include"afxTempl.h"classDLLPORTCIni{private:CStringm_strFileName;public:CIni(CStringstrFileName):m_strFileName(strFileName){}public://一般性操作:BOOLSetFileName(LPCTSTRlpFileName);//设置文件名CStringGetFileName(void);//获得文件名BOOLSetValue(LPCTS
2、TRlpSection,LPCTSTRlpKey,LPCTSTRlpValue,boolbCreate=true);//设置键值,bCreate是指段名及键名未存在时,是否创建。CStringGetValue(LPCTSTRlpSection,LPCTSTRlpKey);//得到键值.BOOLDelSection(LPCTSTRstrSection);//删除段名BOOLDelKey(LPCTSTRlpSection,LPCTSTRlpKey);//删除键名public://高级操作:intGetSections(C
3、StringArray&arrSection);//枚举出全部的段名intGetKeyValues(CStringArray&arrKey,CStringArray&arrValue,LPCTSTRlpSection);//枚举出一段内的全部键名及值BOOLDelAllSections();};/使用方法:CIniini("c:\a.ini");intn;/获得值TRACE("%s",ini.GetValue("段1","键1"));//添加值ini.SetValue("自定义段","键1","值");ini.Se
4、tValue("自定义段2","键1","值",false);//枚举全部段名CStringArrayarrSection;n=ini.GetSections(arrSection);for(inti=0;i5、Key[i],arrValue[i]);//删除键值ini.DelKey("段1","键1");//删除段ini.DelSection("段1");//删除全部ini.DelAllSections();/Ini.cpp#include"StdAfx.h"#include"Ini.h"#defineMAX_ALLSECTIONS2048//全部的段名#defineMAX_SECTION260//一个段名长度#defineMAX_ALLKEYS6000//全部的键名#defineMAX_KEY260//一个键名长度BOO6、LCIni::SetFileName(LPCTSTRlpFileName){CFilefile;CFileStatusstatus;if(!file.GetStatus(lpFileName,status))returnTRUE;m_strFileName=lpFileName;returnFALSE;}CStringCIni::GetFileName(void){returnm_strFileName;}BOOLCIni::SetValue(LPCTSTRlpSection,LPCTSTRlpKey,LPCTSTR7、lpValue,boolbCreate){TCHARlpTemp[MAX_PATH]={0};//以下if语句表示如果设置bCreate为false时,当没有这个键名时则返回TRUE(表示出错)//!&none-value&!这是个垃圾字符没有特别意义,这样乱写是防止凑巧相同。if(!bCreate){GetPrivateProfileString(lpSection,lpKey,"!&none-value&!",lpTemp,MAX_PATH,m_strFileName);if(strcmp(lpTemp,"!&n8、one-value&!")==0)returnTRUE;}if(WritePrivateProfileString(lpSection,lpKey,lpValue,m_strFileName))returnFALSE;elsereturnGetLastError();}CStringCIni::GetValue(LPCTSTRlpSection
5、Key[i],arrValue[i]);//删除键值ini.DelKey("段1","键1");//删除段ini.DelSection("段1");//删除全部ini.DelAllSections();/Ini.cpp#include"StdAfx.h"#include"Ini.h"#defineMAX_ALLSECTIONS2048//全部的段名#defineMAX_SECTION260//一个段名长度#defineMAX_ALLKEYS6000//全部的键名#defineMAX_KEY260//一个键名长度BOO
6、LCIni::SetFileName(LPCTSTRlpFileName){CFilefile;CFileStatusstatus;if(!file.GetStatus(lpFileName,status))returnTRUE;m_strFileName=lpFileName;returnFALSE;}CStringCIni::GetFileName(void){returnm_strFileName;}BOOLCIni::SetValue(LPCTSTRlpSection,LPCTSTRlpKey,LPCTSTR
7、lpValue,boolbCreate){TCHARlpTemp[MAX_PATH]={0};//以下if语句表示如果设置bCreate为false时,当没有这个键名时则返回TRUE(表示出错)//!&none-value&!这是个垃圾字符没有特别意义,这样乱写是防止凑巧相同。if(!bCreate){GetPrivateProfileString(lpSection,lpKey,"!&none-value&!",lpTemp,MAX_PATH,m_strFileName);if(strcmp(lpTemp,"!&n
8、one-value&!")==0)returnTRUE;}if(WritePrivateProfileString(lpSection,lpKey,lpValue,m_strFileName))returnFALSE;elsereturnGetLastError();}CStringCIni::GetValue(LPCTSTRlpSection
此文档下载收益归作者所有