C++中文件的读写(MFC)

.h 文件 

#pragma once


#include "windows.h"
#include "tchar.h "




class CIniFile
{
private:
TCHAR m_szFileName[MAX_PATH];           // 需要打开的配置文件的文件名(在构造函数中被初始化)
public:
CIniFile(const TCHAR *pName);


BOOL GetBool(LPTSTR szSection,LPTSTR pszEntry,BOOL fDefault=FALSE);
DWORD GetInt(LPTSTR szSection,LPTSTR pszEntry, DWORD dwDefault=0);
BOOL GetStr(LPTSTR szSection,LPTSTR pszEntry, LPTSTR pszDefault, LPTSTR pszRet);
double GetFloat(LPTSTR szSection,LPTSTR pszEntry,float dDefault);
    


void WriteBool(LPTSTR szSection,LPTSTR pszEntry, BOOL f);
void WriteInt(LPTSTR szSection,LPTSTR pszEntry, DWORD dw);
void WriteStr(LPTSTR szSection,LPTSTR pszEntry, LPTSTR pszData);
void WriteFloat(LPTSTR szSection,LPTSTR pszEntry,float dDefault,LPTSTR szFormat=NULL);
    
};

.cpp文件  

#include "stdafx.h"
#include <stdio.h>
#include "CIniFile.h"


CIniFile::CIniFile(const TCHAR *pName)
{
lstrcpy(m_szFileName,pName);
}


BOOL CIniFile::GetBool(LPTSTR szSection, LPTSTR pszEntry, BOOL fDefault)
{
return GetPrivateProfileInt(szSection, pszEntry, fDefault, m_szFileName) != 0;
}


DWORD CIniFile::GetInt(LPTSTR szSection,LPTSTR pszEntry, DWORD dwDefault)
{
return GetPrivateProfileInt(szSection, pszEntry, dwDefault, m_szFileName);
}


BOOL CIniFile::GetStr(LPTSTR szSection,LPTSTR pszEntry, LPTSTR pszDefault, LPTSTR pszRet)
{
int     cch;
cch = GetPrivateProfileString(szSection, pszEntry, pszDefault, pszRet, MAX_PATH, m_szFileName);
if (cch == 0)
{
if (NULL == pszDefault)
return FALSE;
lstrcpy(pszRet, pszDefault);
return FALSE;
}
return TRUE;
}


double CIniFile::GetFloat(LPTSTR szSection,LPTSTR pszEntry,float dDefault)
{
TCHAR buf[MAX_PATH] = {0};

swprintf_s(buf,_T("%15lf"),dDefault);
GetPrivateProfileString(szSection, pszEntry, buf, buf, MAX_PATH, m_szFileName);
return _wtof(buf);
}



void CIniFile::WriteFloat(LPTSTR szSection,LPTSTR pszEntry,float dDefault,LPTSTR szFormat)
{
TCHAR buf[MAX_PATH] = {0};
static TCHAR *szFormat0=_T("%lf");


if(szFormat==NULL)
szFormat=szFormat0;
swprintf_s(buf,szFormat,dDefault);
WritePrivateProfileString(szSection, pszEntry, buf, m_szFileName);
}


void CIniFile::WriteStr(LPTSTR szSection,LPTSTR pszEntry, LPTSTR pszData)
{
WritePrivateProfileString(szSection, pszEntry, pszData, m_szFileName);
}


void CIniFile::WriteInt(LPTSTR szSection,LPTSTR pszEntry, DWORD dw)
{
TCHAR szData[MAX_PATH] = {0};


swprintf_s(szData, _T("%d"), dw);
WritePrivateProfileString(szSection, pszEntry, szData, m_szFileName);
}


void CIniFile::WriteBool(LPTSTR szSection,LPTSTR pszEntry, BOOL f)
{
WritePrivateProfileString(szSection, pszEntry, f ? _T("1") : _T("0"), m_szFileName);
}


使用范例: 

CString path =_T("..\\sy\\system.ini"); 

CIniFile m_sysInitFile(Path);

int param ;

m_sysInitFile.writeInt(_T("section"),_T("param"),0);


param =m_sysInitFile.Getint(_T("section"),_T("param"),param);

param=static_cast<int>(param);


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值