在vc中实现一个模访c++builder的TParameters类 (20080411更新)

上次那个贴得太快,现在把它改得完善一点。


class CParameters {
public:
 CParameters(){};
 ~CParameters() {};
private:
 class CValue {
 public:
  CValue():s_value(""){};
  CValue(const char *value):s_value(value) {};
  CValue(const string value):s_value(value) {};
  CValue(const int value) {
     stringstream ss;
           ss << value;
           s_value =ss.str();
  };
  CValue(const float value) {
          stringstream ss;
          ss << value;
          s_value =ss.str();
  };
  CValue(const double value) {
          stringstream ss;
          ss << value;
          s_value =ss.str();
  };
  ~CValue() {};
  const char *c_str() { return s_value.c_str();};
        operator int()  const {  return   atoi(s_value.c_str()); };  
  operator float()  const {  return   atof(s_value.c_str()); };  
  operator double()  const {  return   atof(s_value.c_str()); };
  operator const char *() const { return s_value.c_str(); };
 private:
  string s_value;  
 };
 class CParam {
 public:
        CParam() {};
  ~CParam() {};
 public:
  string Name;
  CValue Value;
 };
    vector<CParam> ParamList;
 public:
  CParam *ParamByName(const char *field_name)
  {
   bool findit=false;
   unsigned int i;
   CParam p;
   p.Name= field_name;
   p.Value="";
   for(  i=0; i< ParamList.size(); i++)
   {
    if(ParamList[i].Name!=string(field_name))
     continue;
    findit=true;
    break;  
   }
   if(!findit)//如果没找到
   {
    ParamList.push_back(p);
   }
   return &ParamList[i];
  };
};
 

这个可以完全模仿bcb的那个TParameters,用法更友好更方便。

void  PersonControl::setConFields()
{
   params->ParamByName("control_person_id")->Value =control_person_id;
   params->ParamByName("ryid")->Value =ryid.c_str();
   return ;
}

 

void  PersonControl::getSelFields()
{
   control_person_id =params->ParamByName("control_person_id")->Value;
   ryid =params->ParamByName("ryid")->Value.c_str();
   name =params->ParamByName("name")->Value.c_str();
   old_name =params->ParamByName("old_name")->Value.c_str();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值