关于大型项目中位移操作的妙用

最近几天一直在看公司的代码,给别人“擦屁股”真的很不爽,特别是给大牛级的人物擦,更累啊!花了一个多小时的时间,才知道他是如何读取XML配置文件的。下面是我自己回来写的一份“伪代码”,大致就是这个样子,具体我也记不清啦,有兴趣的看看!
  1. #define TABLE_COUNT 50
  2. #define FMT_BINARY        _T("2进制数")
  3. #define FMT_OCTAL        _T("8进制数")
  4. #define FMT_DECIMAL        _T("10进制数")
  5. #define FMT_HEX                _T("16进制数")
  6. /* 数组太大,后面的指令就省略了 */
  7. const _TCHAR* MyTable[TABLE_COUNT] = {
  8.     _T("LD"),_T("LDI"),_T("LDP"),_T("LDF"),_T("AND"),
  9.     _T("ANI"),_T("ANDP"),_T("OR")};
  10. /* 
  11.     最终定位到这个函数,根据XML读取配置信息
  12.     可具体怎么读,一下卡壳了,基础不好无法一眼就看出来...
  13. */
  14. void CXXDlg::RefreshParam()
  15. {
  16.     // 清空现有ComBox中的内容
  17.     m_cbName.ResetCount();
  18.     
  19.     if( m_pEntry != NULL)
  20.     {
  21.         // 读取XML中10进制的配置信息如:750599937895082
  22.         // 当时XML中这个字段怎么看都没明白,到底有什么用
  23.         // 二进制为10101010101010101010101010101010101010101010101010
  24.         // 不同元件,添加的数组下标也不一样
  25.         CDWordArray waParams;
  26.         CDWrodArray waParamsz;
  27.         CString     strIns = _T("...");
  28.         m_pEntry->GetParamsByIns(strIns,waParams,waPramsz);
  29.         if( waParams.GetSize() <= 0 )
  30.         {
  31.             return;
  32.         }
  33.         
  34.         // 将所有为1的位,对应的MyTable中下标添加到ComBox中
  35.         DWORD nBase = 1;
  36.         for( int i=1; i <= TABLE_COUNT; i++)
  37.         {
  38.             if(( nBase & waParams[0] > 0)
  39.             {
  40.                 m_cbName.AddString(MyTable[i-1]);
  41.             }
  42.             nBase *= 2;
  43.         }
  44.         
  45.         // 后续其他操作....
  46.     }
  47. }
复制代码
大牛的这个XML配置民,真是用心良苦啊!

唉,才发现如此简单的一个函数,都能卡壳半天,太菜了,太菜了......

后面的XX0代码都还没进入核心部分,看来“任重道远”啊......... 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值