您的位置:首页 > 编程语言 > C语言/C++

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

2017-11-06 17:40 856 查看
.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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: