C++: Ini操作类
来源:互联网 发布:最火的网络歌曲 编辑:程序博客网 时间:2024/04/27 23:55
dscjIni.h
#ifndef _DSCJ_INI_H#define _DSCJ_INI_H#define MAX_BUFFER_SIZE 255class CIni{public: CIni(); CIni(char* szFileName); void Load(char* szFileName); //读操作 int GetInteger(char* szSection, char* szKey, int iDefaultValue); double GetDouble(char* szSection, char* szKey, double dDefaultValue); bool GetBoolean(char* szSection, char* szKey, bool bDefaultValue); char* GetString(const char* szSection, const char* szKey, char *sResult, int nSize, const char* szDefaultValue); char* GetString2(char* szSection, char* szKey, const char* szDefaultValue); //写操作 void SetInteger(char* szSection, char* szKey, int iValue); void SetDouble(char* szSection, char* szKey, double dValue); void SetBoolean(char* szSection, char* szKey, bool bValue); void SetString(char* szSection, char* szKey, char* szValue);private: char* GetString(char* szSection, char* szKey, const char* szDefaultValue);private: char m_szFileName[MAX_BUFFER_SIZE];};#endif//_DSCJ_INI_HdscjIni.cpp
#include "dscjIni.h"#include <iostream>#include <Windows.h>CIni::CIni(){ memset(m_szFileName, 0x00, MAX_BUFFER_SIZE);}CIni::CIni(char* szFileName){ Load(szFileName);}void CIni::Load(char* szFileName){ memset(m_szFileName, 0x00, MAX_BUFFER_SIZE); memcpy(m_szFileName, szFileName, strlen(szFileName));}int CIni::GetInteger(char* szSection, char* szKey, int iDefaultValue){ int iResult = GetPrivateProfileInt(szSection, szKey, iDefaultValue, m_szFileName); return iResult;}double CIni::GetDouble(char* szSection, char* szKey, double dDefaultValue){ char* szResult; char szDefault[MAX_BUFFER_SIZE]; sprintf(szDefault, "%f", dDefaultValue); szResult = GetString(szSection, szKey, szDefault); return atof(szResult);}bool CIni::GetBoolean(char* szSection, char* szKey, bool bDefaultValue){ char* szResult; char szDefault[MAX_BUFFER_SIZE]; sprintf(szDefault, "%s", bDefaultValue? "1" : "0"); szResult = GetString(szSection, szKey, szDefault); return (strcmp(szResult, "1") == 0 || stricmp(szResult, "true") == 0);}char* CIni::GetString(char* szSection, char* szKey, const char* szDefaultValue){ static char szResult[MAX_BUFFER_SIZE]; return GetString(szSection, szKey, szResult, sizeof(szResult), szDefaultValue);}char* CIni::GetString2(char* szSection, char* szKey, const char* szDefaultValue){ static char szResult[MAX_BUFFER_SIZE]; return GetString(szSection, szKey, szResult, sizeof(szResult), szDefaultValue);}char* CIni::GetString(const char* szSection, const char* szKey, char *szResult, int nBufferSize, const char* szDefaultValue){ if(nBufferSize > MAX_BUFFER_SIZE) nBufferSize = MAX_BUFFER_SIZE; memset(szResult, 0x00, nBufferSize); GetPrivateProfileString(szSection, szKey, szDefaultValue, szResult, nBufferSize, m_szFileName); return szResult;}void CIni::SetInteger(char* szSection, char* szKey, int iValue){ char szValue[MAX_BUFFER_SIZE]; sprintf(szValue, "%d", iValue); SetString(szSection, szKey, szValue); }void CIni::SetDouble(char* szSection, char* szKey, double dValue){ char szValue[MAX_BUFFER_SIZE]; sprintf(szValue, "%f", dValue); SetString(szSection, szKey, szValue); }void CIni::SetBoolean(char* szSection, char* szKey, bool bValue){ char szValue[MAX_BUFFER_SIZE]; sprintf(szValue, "%s", bValue ? "1" : "0"); SetString(szSection, szKey, szValue); }void CIni::SetString(char* szSection, char* szKey, char* szValue){ WritePrivateProfileString(szSection, szKey, szValue, m_szFileName);}
main.cpp
#include <iostream>#include "dscjIni.h"int main(int argc, char * argv[]){CIni iniWriter(".\\Logger.ini");iniWriter.SetString("Setting", "Name", "jianxx");iniWriter.SetInteger("Setting", "Age", 27);iniWriter.SetDouble("Setting", "Height", 1.82f);iniWriter.SetBoolean("Setting", "Marriage", false);CIni iniReader(".\\Logger.ini");char szName[MAX_BUFFER_SIZE];iniReader.GetString("Setting", "Name", szName, sizeof(szName), "");int iAge = iniReader.GetInteger("Setting", "Age", 25);double fltHieght = iniReader.GetDouble("Setting", "Height", 1.80f);bool bMarriage = iniReader.GetBoolean("Setting", "Marriage", true);std::cout<<"Name:"<<szName<<std::endl<<"Age:"<<iAge<<std::endl <<"Height:"<<fltHieght<<std::endl <<"Marriage:"<<bMarriage<<std::endl; return 1; }
- C++: Ini操作类
- C#INI文件操作类
- [C++] INI文件操作类, myini
- C++,ini文件操作(包含类)
- C#.Net ini file 操作
- [C#]对于INI操作代码
- C/C++ INI文件操作
- INI文件操作类
- Ini文本文件操作类
- ini 操作类
- ini 操作类
- ini文件操作类
- INI文件操作类
- INI文件操作类
- INI操作类
- INI文件操作类
- INI文件的操作(ASP.NET+C#)
- [C#]使用C#操作INI文件
- 为什么寄存器比内存快?
- 免费VPN代理软件推荐
- exception处理和message的开发
- 计算字符串的相似度--编程之美3.3
- Linux C++软件开发技术
- C++: Ini操作类
- [iphone开发]过程中的问题与解决方法
- java中的继承
- DM6467开发之U-Boot移植(2)——U-Boot移植
- Django 1.5.4 专题26 Bootstrap
- UVA - 10375 Choose and divide
- java基础--线程(oracle文档的摘录)
- IDOC的配置和开发(完整的IDOC)
- Java基础——ThreadLocal实现线程范围内的数据共享