资源简介
linux下读写ini文件方法,0分可直接下载
代码片段和文件信息
#include
#include “inifile.h“
#include
#include
#include
#include
#include
CIniFile::CIniFile(void)
{
}
CIniFile::CIniFile(const char *chFileName):m_strFileName(chFileName)
{
Init();
}
CIniFile::CIniFile(const string &strFileName):m_strFileName(strFileName)
{
Init();
}
CIniFile::~CIniFile(void)
{
}
int CIniFile::Init(const char* pFileName)
{
m_strFileName = pFileName;
return LoadFile();
}
int CIniFile::Init(const string& strFileName)
{
m_strFileName = strFileName;
return LoadFile();
}
int CIniFile::Init()
{
return LoadFile();
}
int CIniFile::Dump()
{
map::iterator tSecIter1 = m_mSec2Config.begin() tSecIter2 = m_mSec2Config.end();
ConfigType::iterator tConfigTypeIter1 tConfigTypeIter2;
while (tSecIter1 != tSecIter2)
{
cout << “[“ << tSecIter1->first << “]“ << endl;
tConfigTypeIter1 = tSecIter1->second.begin() tConfigTypeIter2 = tSecIter1->second.end();
while (tConfigTypeIter1 != tConfigTypeIter2)
{
cout << tConfigTypeIter1->first << “=“ << tConfigTypeIter1->second << endl;
++tConfigTypeIter1;
}
cout << endl;
++tSecIter1;
}
return 0;
}
int CIniFile::ReadItem(const string& strSection const string& strKey const string& strDefault string& strValue)
{
if (!m_mSec2Config.count(strSection))
{
return -1;
}
ConfigType& tConfigType = m_mSec2Config[strSection];
if(tConfigType.count(strKey))
{
strValue = tConfigType[strKey];
return 0;
}
else
{
strValue=strDefault;
return -1;
}
}
int CIniFile::WriteItem(const string& strSection const string& strKey const string& strValue)
{
ConfigType& tConfigType = m_mSec2Config[strSection];
if (tConfigType.count(strKey))
{
;//return -1;
}
tConfigType[strKey] = strValue;
return WriteFile();
}
int CIniFile::LoadFile()
{
FILE* pFile;
if (NULL == (pFile = ::fopen(m_strFileName.c_str() “r“)))
{
return -1;
}
string strLine strSection;
string strKey strValue;
size_t nPos nEndPos;
ConfigType tConfigType;
while (0 == ReadLine(pFile strLine))
{
if (string::npos != (nPos = strLine.find_first_of(“[“)))
{
if (string::npos == (nEndPos = strLine.find_first_of(“]“)))
{
::fclose(pFile);
return -1;
}
strSection = strLine.substr(nPos + 1 nEndPos - nPos - 1);
if (0 > TrimString(strSection))
{
::fclose(pFile);
return -1;
}
}
else if (string::npos != (nPos = strLine.find_first_of(“=“)))
{
strKey = strLine.substr(0 nPos);
strValue = strLine.substr(nPos + 1);
if (0 > TrimString(strKey) || 0 > TrimString(strValue) || strSection.empty())
{
::fclose(pFile);
return -1;
}
m_mSec2Config[strSection][strKey] = strValue;
}
}
return ::fclose(pFile);
}
int CIniFile::WriteFile()
{
FILE* pFile;
if (NULL == (pFile = ::fopen(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1937 2012-12-11 15:53 inifile.h
文件 14495 2012-12-11 15:53 inifile.cpp
----------- --------- ---------- ----- ----
16432 2
相关资源
- Linux操作系统基础教程
- linux PCIE架构详解
- Linux复习题及答案-期末考试70%题目
- linux epoll的封装类
- windows 2008 DNS 与 Linux 同步
- linux 下 libssl.so.10 libcrypto.so.10
- STM32F103 ucLinux 开发BOOT源码
- 嵌入式LINUX下WEB服务器的设计与实现
- linux下的通用lcd驱动lcdproc
- ippicv_2017u2_lnx_intel64_20170418.tgz
- Write an ALSA Driver
- 基于GTK+的单词数值计算器
- linux下dnw安装包适合tiny4412
- linux下编写的一个简单的通讯录.zip
- 侦测ip端口小工具tcping linux版
- callback手把手教你写回调函数源代码
- 用gtk开发的电子时钟
- Linux程序设计第四版_源代码免积分
- 嵌入式linux下截图工具gsnap移植源码
- Ericsson的moshell命令大全
- atheros ar8171网卡驱动 CentOS6.4 已调通
- ST16C554扩展串口驱动程序
- ARM_Linux嵌入式系统在农业大棚中的应
- 简单、规范的Linux下的ds18b20驱动基于
- 基于Linux的C源代码——一个简单的从
- 基于arm平台的MP3播放器
- ( linux常用命令集PDF版.pdf )
- NI采集卡 linux驱动
- libncurses.so.5.5
- CentOS-7-x86_64镜像文件
评论
共有 条评论