📄 inifile.cpp
字号:
#include "StdAfx.h"
#include "IniFile.h"
//-------------------------------------------------------------------------------
// 一些常数定义
//-------------------------------------------------------------------------------
#define MAX_SECTION 260 // Section最大长度
#define MAX_KEY 260 // KeyValues最大长度
#define MAX_ALLSECTIONS 256 // 所有Section的最大长度
#define MAX_ALLKEYS 256 // 所有KeyValue的最大长度
//-------------------------------------------------------------------------------
// 构造函数
//-------------------------------------------------------------------------------
CIniFile::CIniFile()
{
// 初始化配置文件
GetModuleFileName(NULL, m_szFileName, MAX_PATH);
lstrcpy(m_szFileName + lstrlen(m_szFileName) - 4, ".ini");
}
//-------------------------------------------------------------------------------
// 打开ini文件(设置路径)
//-------------------------------------------------------------------------------
bool CIniFile::Open(const char *filename)
{
strncpy(m_szFileName, filename, sizeof(m_szFileName));
// 检查文件是否存在
DWORD dwFlag = GetFileAttributes((LPCTSTR)m_szFileName);
// 文件或者路径不存在,返回FALSE
if (0xFFFFFFFF == dwFlag)
return false;
// 路径是目录,返回FALSE
if (FILE_ATTRIBUTE_DIRECTORY & dwFlag)
return false;
return true;
}
//-------------------------------------------------------------------------------
// 检查section(节)是否存在
//-------------------------------------------------------------------------------
bool CIniFile::SectionExist(const char *section)
{
char buffer[MAX_SECTION];
DWORD ret = GetPrivateProfileString(section, NULL, "", buffer,
sizeof(buffer), m_szFileName);
return ret > 0;
}
//-------------------------------------------------------------------------------
// 读取指定section下key的value(字符串)
//-------------------------------------------------------------------------------
const char * CIniFile::ReadString(const char *section, const char *key, const char *defaultvalue)
{
static char key_buffer[MAX_KEY];
DWORD ret = GetPrivateProfileString(section, key, defaultvalue, key_buffer, sizeof(key_buffer), m_szFileName);
return key_buffer;
}
//-------------------------------------------------------------------------------
// 设置指定section下key的value(字符串),不存在则创建
//-------------------------------------------------------------------------------
bool CIniFile::WriteString(const char *section, const char *key, const char *value)
{
return WritePrivateProfileString(section, key, value, m_szFileName) > 0;
}
//-------------------------------------------------------------------------------
// 删除指定section下的key及其value
//-------------------------------------------------------------------------------
bool CIniFile::DeleteKey(const char *section, const char *key)
{
return WritePrivateProfileString(section, key, NULL, m_szFileName) > 0;
}
//-------------------------------------------------------------------------------
// 删除指定section及其所有的key及value
//-------------------------------------------------------------------------------
bool CIniFile::DeleteSection(const char *section)
{
return WritePrivateProfileString(section, NULL, NULL, m_szFileName) > 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -