www.pudn.com > xml2db.rar > chash.cpp
/** *@file chash.cpp *@brief Chash的实现文件 * *Chash是一个工具类,用来分析key=value格式的配置文件,或数据文件 *Author: cuichao@boco.com.cn \n *ChangeLog: \n *14-09-05 11:12 create *2006-06-23 10:20:28 改成配置项区分大小写 */ #include #include #include #include #include #include "chash.h" using namespace std; static bool IsSpace(char ch) { if(ch==' '||ch=='\t'||ch=='\r'||ch=='\n') return true; else return false; } static void ChopStr(string &str) { if(str.empty()) return; unsigned int i; for(i=0;IsSpace(str.at(i))&&i=0;i--); str.erase(i+1); } static void ToUpper(string &str) { for(int i=0;i::const_iterator it_t; for(it_t=m_map.begin();it_t!=m_map.end();it_t++) { strResult+=(*it_t).first; strResult+='='; strResult+=(*it_t).second; strResult+='|'; } return strResult; } CHash::iterator CHash::find(const string & key) { return m_map.find(key); } CHash::iterator CHash::end() { return m_map.end(); } CHash::iterator CHash::begin() { return m_map.begin(); } CHash::const_iterator CHash::find(const string & key) const { return m_map.find(key); } CHash::const_iterator CHash::end() const { return m_map.end(); } CHash::const_iterator CHash::begin() const { return m_map.begin(); } CHash::~CHash() { } CHash::CHash(const CHash &src) { m_map=src.m_map; } const CHash & CHash::operator=(const CHash &src) { if(!m_map.empty()) { m_map.clear(); } m_map=src.m_map; return (*this); } ostream & operator<<(ostream& os,const CHash& hs) { CHash::const_iterator it_hs; for(it_hs=hs.begin();it_hs!=hs.end();it_hs++) { os<first<<" = "<second<