VC 配置文件ini

XSConfig.h

#pragma once
class CXSConfig
{
public:
	//单例模式
	static CXSConfig* getInstance()
	{
		static CXSConfig OnlyInstance;
		return &OnlyInstance;
	}
	//加载配置文件
	bool LoadConfig(LPCTSTR szConfigPathName);
	//获取
	CString getName(){ return m_name; }
	int getAge(){ return m_age; }
	double getHeight(){ return m_height; }
	bool getMarried(){ return m_bMarried; }
	COleDateTime getBirthday(){ return m_birthday; }

	//写入
	void setName(const CString& strName);
	void setAge(const int& nAge);
	void setHeight(const double& dHeight);
	void setMarried(const bool& bMarried);
	void setBirthday(const COleDateTime& time);
private:
	CXSConfig();
	~CXSConfig();
private:
	CString m_strCofigPathName;//配置文件路径

	//配置项
	CString m_name;
	int m_age;
	double m_height;
	bool m_bMarried;
	COleDateTime m_birthday;
};

XSConfig.cpp

#include "stdafx.h"
#include "XSConfig.h"

//配置文件示例
//[STUDENTINFO]
//Name = Li Lei
//Age = 18
//Height = 180.0
//Married = 0
//Birthday = 2003 - 06 - 28 17:40 : 36

CXSConfig::CXSConfig() :
m_name(_T("")),
m_age(0),
m_height(0.0),
m_bMarried(false)
{
}


CXSConfig::~CXSConfig()
{
}

bool CXSConfig::LoadConfig(LPCTSTR szConfigPathName)
{
	HANDLE hFile = ::CreateFile(szConfigPathName, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
	if (INVALID_HANDLE_VALUE == hFile)
	{
		return false;
	}
	::CloseHandle(hFile);

	m_strCofigPathName = CString(szConfigPathName);

	CString strAppName = _T("STUDENTINFO");
	TCHAR tchText[1024] = { 0 };
	CString strKey;

	//取字符串
	strKey = _T("Name");
	GetPrivateProfileString(strAppName.GetString(), strKey.GetString(), _T(""), tchText, 1024, m_strCofigPathName.GetString());
	m_name = CString(tchText);

	//取int值
	memset(tchText, 0, 1024);
	strKey = _T("Age");
	m_age = GetPrivateProfileInt(strAppName.GetString(), strKey.GetString(), 0, m_strCofigPathName.GetString());

	//取double值
	memset(tchText, 0, 1024);
	strKey = _T("Height");
	GetPrivateProfileString(strAppName.GetString(), strKey.GetString(), _T("0.0"), tchText,1024,m_strCofigPathName.GetString());
	m_height = _tstof(tchText);

	//取bool值
	memset(tchText, 0, 1024);
	strKey = _T("Married");
	m_bMarried = (GetPrivateProfileInt(strAppName.GetString(), strKey.GetString(), 0, m_strCofigPathName.GetString())) ? true : false;

	//取时间值
	memset(tchText, 0, 1024);
	strKey = _T("Birthday");
	GetPrivateProfileString(strAppName.GetString(), strKey.GetString(), _T("0000-00-00 00:00:00"), tchText, 1024, m_strCofigPathName.GetString());
	m_birthday.ParseDateTime(tchText);

	return true;
}

void CXSConfig::setName(const CString& strName)
{
	m_name = strName;
	CString strAppName = _T("STUDENTINFO");
	CString strKey = _T("Name");
	::WritePrivateProfileString(strAppName.GetString(),	strKey.GetString(), strName.GetString(), m_strCofigPathName.GetString());
}

void CXSConfig::setAge(const int& nAge)
{
	m_age = nAge;
	CString strAppName = _T("STUDENTINFO");
	CString strKey = _T("Age");
	CString write;
	write.Format(_T("%d"), nAge);
	::WritePrivateProfileString(strAppName.GetString(), strKey.GetString(), write.GetString(), m_strCofigPathName.GetString());
}
void CXSConfig::setHeight(const double& dHeight)
{
	m_height = dHeight;
	CString strAppName = _T("STUDENTINFO");
	CString strKey = _T("Height");
	CString write;
	write.Format(_T("%.2f"), dHeight);
	::WritePrivateProfileString(strAppName.GetString(), strKey.GetString(), write.GetString(), m_strCofigPathName.GetString());
}
void CXSConfig::setMarried(const bool& bMarried)
{
	m_bMarried = bMarried;
	int value = bMarried ? 1 : 0;
	CString strAppName = _T("STUDENTINFO");
	CString strKey = _T("Married");
	CString write;
	write.Format(_T("%d"), value);
	::WritePrivateProfileString(strAppName.GetString(), strKey.GetString(), write.GetString(), m_strCofigPathName.GetString());
}

void CXSConfig::setBirthday(const COleDateTime& time)
{
	m_birthday = time;
	CString strAppName = _T("STUDENTINFO");
	CString strKey = _T("Birthday");
	CString write;
	write.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"),
		time.GetYear(),
		time.GetMonth(),
		time.GetDay(),
		time.GetHour(),
		time.GetMinute(),
		time.GetSecond());
	::WritePrivateProfileString(strAppName.GetString(), strKey.GetString(), write.GetString(), m_strCofigPathName.GetString());
}

配置文件:

[STUDENTINFO]
Name=李雷
Age=18
Height=180.0
Married=0
Birthday=2003-06-28 17:40:36

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值