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);
#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);
相关文章推荐
- MFC中使用C++ 读写文件
- C、C++和MFC中文件的读写方法
- MFC 文件的读写(其实还是c++的哪些东西)
- C++ MFC CFile 文件使用案例 读写文件 图像
- C++中通过MFC对ini初始化,配置文件的读写使用
- C、C++和MFC中文件的读写方法
- MFC中的文件读写操作
- C++文件读写详解(ofstream,ifstream,fstream)
- c++文件的读写操作
- MFC中的文件读写技术
- MFC INI文件读写
- 【mfc】利用文件的读写,theApp全局变量来现实登录帐号管理系统
- MFC读写配置文件
- MFC文件普通读写
- 获取文件大小的六种方法大全,打开文件和不打开文件都有,C方法获取,C++方法获取,MFC方法获取。
- MFC文件读写
- C/C++跨平台ini文件读写API
- C++文件读写函数之——fgets和fputs、fread和fwrite、fscanf和fprintf
- C++读写EXCEL文件方式比较
- c++ 文件读写