青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Javen-Studio 咖啡小屋

http://javenstudio.org - C++ Java 分布式 搜索引擎
Naven's Research Laboratory - Thinking of Life, Imagination of Future

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  24 隨筆 :: 57 文章 :: 170 評論 :: 4 Trackbacks
//author Naven 2003 for both Win32 and Unix os

class MyProperties {
public:
    MyProperties();
    MyProperties(istream 
&is); 
    MyProperties(
const string &filename); 

    
void load(const string &filename);
    unsigned 
long size(); 
    string filename();
    string get(
const string &name, const string &default_value); 
    
void remove(const string &name); 
    
void set(const string &name, const string &value); 
    
void add(const string &name, const string &value); 
    string getName(
const int &i);
    string getValue(
const int &i);

    
void save();
    
void save(string &filename); 

private:
    
void init(istream &is); 

private:
    string _file; 
    vector _vals, _elms; 
    unsigned 
long _size; 

}


MyProperties::MyProperties()
{
    _size 
= 0;
}


MyProperties::MyProperties(istream 
&is) 
{
    _size 
= 0;
    init(is); 
}


MyProperties::MyProperties(
const string &filename) 
{
    load(filename); 
}


void
MyProperties::load(
const string &filename) 
{
    _elms.clear(); _vals.clear(); 
    _size 
= 0
    
if(filename.empty()) 
        
return
    ifstream is(filename.c_str()); 
    _file 
= filename; 

    init(is); 
}


void 
MyProperties::init(istream 
&is) 
{
    
if(!is) return;
    
char ln[LINE_SIZE+1], *pval; 
    _elms.clear(); _vals.clear(); 
    _size 
= 0
    
while(is.getline(ln, LINE_SIZE)) 
        trimleft(ln); 
        
if(ln[0!= '#' && (pval = strchr(ln, '=')) != NULL) {
            pval[
0= 0; pval++
            trimright(ln); trim(pval); 
            
if(ln[0!= 0 && pval[0!= 0
                _elms.push_back(ln); 
                _vals.push_back(pval);
                _size 
++
            }

        }

    }

}


unsigned 
long 
MyProperties::size() 
{
    
return _size;
}


string
MyProperties::filename()
{
    
return _file; 
}


string 
MyProperties::getName(
const int &i)
{
    
if(i >=0 && i<_elms.size()) 
        
return _elms[i];
    
return "";
}


string 
MyProperties::getValue(
const int &i)
{
    
if(i >=0 && i<_vals.size()) 
        
return _vals[i];
    
return "";
}


string
MyProperties::get(
const string &name, const string &default_value=""
{
    
if(name.empty()) 
        
return default_value; 
    vector::const_iterator elm_iter 
= _elms.begin(), elm_end = _elms.end();
    vector::const_iterator val_iter 
= _vals.begin(), val_end = _elms.end();
    
while(elm_iter != elm_end && val_iter != val_end) {
        
if((*elm_iter) == name) 
            
return *val_iter; 
        elm_iter 
++
        val_iter 
++
    }

    
return default_value; 
}


void
MyProperties::remove(
const string &name) 
{
    
if(name.empty()) return;
    vector::iterator elm_iter 
= _elms.begin(), elm_end = _elms.end();
    vector::iterator val_iter 
= _vals.begin(), val_end = _elms.end();
    
while(elm_iter != elm_end && val_iter != val_end) {
        
if((*elm_iter) == name) {
            _elms.erase(elm_iter); 
            _vals.erase(val_iter); 
            _size 
--;
        }
 
        elm_iter 
++
        val_iter 
++
    }

}


void
MyProperties::set(
const string &name, const string &value) 
{
    
if(name.empty()) return;
    vector::iterator elm_iter 
= _elms.begin(), elm_end = _elms.end();
    vector::iterator val_iter 
= _vals.begin(), val_end = _elms.end();
    
while(elm_iter != elm_end && val_iter != val_end) {
        
if((*elm_iter) == name) 
            
*val_iter = value; 
        elm_iter 
++
        val_iter 
++
    }

}


void 
MyProperties::add(
const string &name, const string &value) 
{
    
if(name.empty()) return
    _elms.push_back(name); _vals.push_back(value); 
    _size 
++
}


void 
MyProperties::save(string 
&filename)
{
    
if(filename.empty()) 
        
return;
    ifstream is(filename.c_str()); 
    
if(!is) return
    
    
char ln[LINE_SIZE+1], *pval; 
    ostrstream sbuf; string str, str2; bool exist_flag;
    vector vec; 

    
while(is.getline(ln, LINE_SIZE)) 
        str 
= ln; trimleft(ln); exist_flag = false;
        
if(ln[0!= '#' && (pval = strchr(ln, '=')) != NULL) {
            pval[
0= 0; trimright(ln); 
            
if(ln[0!= 0 && !(str2=get(ln)).empty()) {
                sbuf 
<< ln << "=" << str2 << endl;
                vec.push_back(ln); 
                exist_flag 
= true
            }

        }

        
if(exist_flag == false
            sbuf 
<< str << endl; 
    }


    vector::iterator elm_iter 
= _elms.begin(), elm_end = _elms.end();
    vector::iterator val_iter 
= _vals.begin(), val_end = _elms.end();
    vector::iterator vec_iter, vec_end 
= vec.end();
    
while(elm_iter != elm_end && val_iter != val_end) {
        vec_iter 
= vec.begin(); exist_flag = false;
        
while(vec_iter != vec_end) {
            
if((*vec_iter) == (*elm_iter)) {
                exist_flag 
= truebreak
            }
 
            vec_iter 
++
        }
 
        
if(exist_flag == false
            sbuf 
<< *elm_iter << "=" << *val_iter << endl; 
        elm_iter 
++; val_iter ++
    }
 
    sbuf 
<< ends;
    
    ofstream os(filename.c_str()); 
    
if(os) os << sbuf.str();
}


void 
MyProperties::save()
{
    save(_file);
}


/* trim the space and tab at left */
char*
trimleft( 
char *s )
{
    register 
int i=0int sl=0;
    
char *sc =0;

    
if( s == NULL || s[0== 0 ) return NULL;
    sl 
= strlen( s );

    
/* trim space and tab char at the left */
    
for( i=0; i s )
    
{
        sl 
= strlen(sc);
        
for( i=0; i=0; i-- )
    
{
        
/* 32 is space, 9 is tab */
        
if( s[i] == 32 || s[i] == 9 )
            s[i] 
= 0;
        
else
            
break;
    }

    
return s;
}


/* trim space and tab at left and right */
char*
trim( 
char *s )
{
    
if( s == NULL || s[0== 0 ) return NULL;

    trimright( s );
    trimleft( s );

    
return s;
}


posted on 2005-10-03 11:45 Javen-Studio 閱讀(383) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品亚洲国产奇米99| 在线一区视频| 亚洲激情自拍| 国产欧美日韩综合| 欧美日韩精品一区视频| 美女黄毛**国产精品啪啪| 在线一区免费观看| 99日韩精品| 亚洲精品自在在线观看| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美精品suv| 亚洲免费观看| 夜色激情一区二区| 99视频精品全部免费在线| 亚洲激情社区| 亚洲精品国产品国语在线app| 韩日欧美一区| 亚洲第一久久影院| 亚洲国产欧美不卡在线观看| 亚洲高清激情| 亚洲靠逼com| 在线视频欧美日韩精品| 亚洲私人影院| 欧美一区二区三区久久精品茉莉花 | 蜜桃av一区二区在线观看| 今天的高清视频免费播放成人| 国产亚洲欧美日韩日本| 黄色精品一区| 亚洲精品乱码久久久久久按摩观 | 亚洲精品国产精品国自产观看| 欧美丰满高潮xxxx喷水动漫| 亚洲第一精品影视| 9色porny自拍视频一区二区| 亚洲蜜桃精久久久久久久| 一二三区精品福利视频| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美激情精品久久久久久黑人 | 国产乱理伦片在线观看夜一区| 国产精品一区二区三区久久| 韩曰欧美视频免费观看| 亚洲人成网站999久久久综合| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 狼人社综合社区| 亚洲国产精品第一区二区| 在线亚洲免费| 久久天天狠狠| 国产精品h在线观看| 国产欧美精品一区| 亚洲精品国产欧美| 亚洲第一中文字幕| 亚洲自拍偷拍视频| 蜜臀a∨国产成人精品| 亚洲伦伦在线| 久久人人爽人人爽爽久久| 欧美日韩国产影院| 伊甸园精品99久久久久久| 亚洲性感美女99在线| 久久色中文字幕| 一区二区三区四区精品| 久久精品免费观看| 亚洲日本视频| 欧美在线播放| 日韩亚洲欧美精品| 欧美日韩专区| 日韩手机在线导航| 欧美成人a∨高清免费观看| 欧美一区=区| 欧美日韩在线观看视频| 国产九九精品| 亚洲国产精品电影| 久久亚洲国产成人| 亚洲香蕉视频| 欧美日韩中文在线观看| 亚洲国产欧美一区二区三区同亚洲 | 午夜精品国产精品大乳美女| 欧美国产一区视频在线观看| 国产一区二区三区久久久| 在线亚洲精品福利网址导航| 久久精品一区中文字幕| 91久久久久| 欧美大片在线影院| 亚洲高清在线观看| 欧美电影电视剧在线观看| 欧美自拍丝袜亚洲| 国产精品私房写真福利视频| 亚洲午夜国产成人av电影男同| 欧美成人亚洲| 欧美激情成人在线| 亚洲一区国产精品| 亚洲一级在线观看| 欧美日韩1080p| 在线看日韩av| 亚洲高清一区二区三区| 欧美国产视频在线| 一片黄亚洲嫩模| 久久婷婷国产麻豆91天堂| 欧美片第一页| 亚洲国产精品一区| 日韩视频―中文字幕| 国产精品影视天天线| 午夜老司机精品| 欧美一区二区三区精品 | 亚洲电影免费观看高清完整版在线观看| 久久精品免费看| 国产精品美腿一区在线看| 欧美伊人久久久久久午夜久久久久| 亚洲第一区中文99精品| 蜜桃久久精品一区二区| 一区二区三区**美女毛片| 亚洲一区二区高清| 在线播放中文一区| 99精品视频免费| 国产精品专区一| 欧美a级片网| 欧美日韩在线电影| 久久精品亚洲精品| 欧美岛国在线观看| 亚洲欧美日韩精品久久| 欧美一级大片在线观看| 国产美女在线精品免费观看| 免费在线一区二区| 久久久午夜视频| 夜夜爽www精品| 久久精品国产精品亚洲综合| 日韩视频免费在线| 久久成人18免费观看| 日韩亚洲成人av在线| 午夜亚洲性色视频| 日韩一级免费| 久久久久久电影| 欧美一二三视频| 欧美日韩mv| 欧美h视频在线| 国产精品劲爆视频| 欧美一级久久久| 欧美大片免费观看| 久久久美女艺术照精彩视频福利播放 | 亚洲人成网站色ww在线| 亚洲综合色在线| 亚洲美女视频网| 久久九九有精品国产23| 先锋影音一区二区三区| 欧美美女视频| 欧美高清视频| 国产日韩一区| 亚洲免费电影在线| 欧美韩日一区| 欧美成人精品一区二区| 在线欧美电影| 一本一本久久a久久精品牛牛影视| 尤妮丝一区二区裸体视频| 亚洲制服丝袜在线| 亚洲一级二级在线| 欧美日韩国产探花| 亚洲国产精品久久91精品| 黄色av成人| 久久国产日本精品| 欧美成人精品福利| 亚洲精品国产精品国产自| 免费在线观看一区二区| 亚洲精品久久久久久久久久久久久| 99ri日韩精品视频| 国产精品狼人久久影院观看方式| 午夜精品网站| 欧美福利电影在线观看| 亚洲午夜女主播在线直播| 国产色婷婷国产综合在线理论片a| 久久久水蜜桃av免费网站| 亚洲毛片网站| 欧美一区二区三区男人的天堂| 欧美亚洲尤物久久| 在线观看国产一区二区| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲图片欧洲图片av| 国产欧美精品| 欧美激情精品久久久| 午夜久久久久久| 亚洲国产高清aⅴ视频| 欧美一级精品大片| 亚洲欧洲在线免费| 国产精品试看| 亚洲经典一区| 久久久久久久一区二区三区| 在线观看三级视频欧美| 欧美日韩国产一区二区三区地区 | 久久只有精品| 亚洲一区二区三区中文字幕| 美日韩精品免费| 亚洲免费在线视频一区 二区| 影音先锋日韩有码| 国产精品日韩欧美一区| 狂野欧美一区| 亚洲欧美日韩精品一区二区| 亚洲国产精品电影| 久色婷婷小香蕉久久| 性欧美暴力猛交69hd| 99精品国产一区二区青青牛奶 | 国产欧美亚洲日本| 欧美色网在线| 欧美日韩在线第一页|