0 0

搞来搞去,我承认我没想出好办法10

有个程序是个C/C++的东东,有一个功能是这样的是,在文本中预设了一些值,比方说:
OS="Linux"
LANG="CHS,ENG"
ARCH="32"

后续有些模块带有文本条件,这些条件是前面变量的“与或非”操作,比如说模块A的条件是
(NOT OS="WIN7") AND LANG="CHS" 说明这个模块需要满足“非Win7“且是中文的系统。。

那么根据前面的预设值,可以知道这个模块的条件是“真”,然后加载该模块。


这个东东在C/C++有什么好的办法实现吗?或者非要嵌入个lua或者ruby来实现么?
问题补充
billgui 写道
常量能用吗?或者宏?


这些东西都是写在xml文件的某个属性里的,是文本格式。
问题补充
billgui 写道
不然全部模块都加载,又耗费不了多少内存,有命名冲突的话想法解决。

只是个人随便说说,对C/C++也是多年不怎么用,很生疏了。



当然不可以这样,不然后面就乱套了。。。。
问题补充
billgui 写道
那就读XML文件,解析那些字段,赋值给一些变量,然后做与或非操作。


....这是通俗唱法,我要美声的。
问题补充
callofseen 写道
ray_linn 写道
billgui 写道
那就读XML文件,解析那些字段,赋值给一些变量,然后做与或非操作。


....这是通俗唱法,我要美声的。


放着好好的Makefile不用 非要搞XML



这个跟makefile木有关系,咱的module是业务模块,不是程序的模块,例子是随便捏出来的。


问题补充
amozon 写道
字符串匹配


咱不是嫌字符串匹配每次业务规则一改变,就要匹配到要老命去。过两天,就等于自己写了个小语言了。

问题补充:<div class="quote_title">强强爱妍妍 写道</div><div class="quote_div">兄弟,你是想要运行时刻区分吗? 前面有个兄弟提的用环境变量的方法很合适。</div> <br /> <br /> <br />是的,一切发生在运行时
2011年6月22日 14:50

10个答案 按时间排序 按投票排序

0 0

兄弟,你是想要运行时刻区分吗? 前面有个兄弟提的用环境变量的方法很合适。

2011年6月22日 14:50
0 0

两种思路,一种就是把XML文件作为true or false的判断依据,另一种是将XML文件作为注册信息,有变动时注册到系统中,内部怎么高效处理就怎么高效处理吧。

2011年6月22日 14:50
0 0

只有与或非加括号加键值对,随手写一个呗,你也知道你不是真想写语言呀

2011年6月22日 14:50
0 0

想不出,就先quick & dirty地先折腾起来,后面看情况再refactor。

2011年6月22日 14:50
0 0

字符串匹配

2011年6月22日 14:50
0 0

歪门邪道:
写个临时文件Shell
1,把条件变量设到环境变量里去。
2,简单变换下判断表达式使之成为合法的Shell if语句
3,执行下该文件,判断结果是true还是false

2011年6月22日 14:50
0 0

ray_linn 写道
billgui 写道
那就读XML文件,解析那些字段,赋值给一些变量,然后做与或非操作。


....这是通俗唱法,我要美声的。


放着好好的Makefile不用 非要搞XML

2011年6月22日 14:50
0 0

那就读XML文件,解析那些字段,赋值给一些变量,然后做与或非操作。

2011年6月22日 14:50
0 0

不然全部模块都加载,又耗费不了多少内存,有命名冲突的话想法解决。

只是个人随便说说,对C/C++也是多年不怎么用,很生疏了。

2011年6月22日 14:50
0 0

常量能用吗?或者宏?

2011年6月22日 14:50

相关推荐

    上课搞搞震1.0(随时预设,想播歌就播歌。愚人节“大有作为”哦)

    1.可以隐藏在后台,在到了设置好的时间时直接响应——播放初设好的音乐文件。...第二点是制作【上课搞搞震】的初衷,只是发现这中情况不多,拿来恶搞的机会更多点,于是干脆取名为“上课搞搞震”了。

    想去外企上班:208个必须搞掂的面试难题

    想去外企上班:208个必须搞掂的面试难题

    Eclipse RAP2.1部署到Tomcat总结

    本人只会用RCP开发个C/S的程序,最近看到RAP项目想试一下,在百度上看了很多文章关于如何部署RAP到Tomcat,有些文章已经过时的了,还是没能理解清楚,最后弄了2天时间,搞来搞去没办法调试出来,最后都想放弃了。...

    给想搞婚外情男女地五大忠告.doc

    给想搞婚外情男女地五大忠告.doc

    软件开发者面试百问 想雇到搞软件开发的聪明人可不容易

    软件开发者面试百问 想雇到搞软件开发的聪明人可不容易。万一一不小心,就会搞到一堆低能大狒狒。我去年就碰到这种事了。你肯定不想这样吧。听我的,没错。在树上开站立会议门都没有。

    U盘猎手

    说实话,这个程序我写出来后只是在自己的机器上试过,但是没有真正拿去偷偷拷贝老师的课件,不过有的老师有时候有点抠了,连课件都不给,只能想出这样的一个不是办法的办法,仅作为教学用,不要拿去搞破坏噢~~~~

    COOLAdb工具包_傻瓜式C#将pc和安卓连接并操作的小白工具

    然而很多时候大家并不只是想拿来用,而是想怎么搞的,如何适应我的代码.这时那些繁复冗长复杂的控件代码反而是累赘.我就是这种情况 所以我找了个自己适合的代码. 作者是github上的,他写了个最新的Adb工具,叫COOLADB,...

    Spring boot 集成 ureport

    嗯,还真的没弄出来,后来他项目也忙也就没搞了,大约1个月前,我觉得我找到了好的方案,问他集成不,当时他说没时间!然后三天前他说现在bug改完了,问我怎么弄的,然后我们又是一顿搞,各种想办法,以为他项目是...

    Android代码-以后gnak的妹子就靠它了

    但是出现了一个问题就是这个网站更新挺快的,一来我不想在服务器搞服务搞这些图片,二来啊这么多好东好帮手; 学 :注意!注意!注意! 习 :前方高能,未满十八周岁的开发者请迅速收藏本网页,回家再慢慢看 ...

    关于_DevExpress_破解_注册机_安装码_良好解决办法_大总结_注意珍藏.txt

    开始搞这个东西,确实让我没琢磨透。 从装机修电脑,到假设调试网络,再到做网站,做管理软件到工控软件。。。磨蹭了10年了。想提高一下研究 ,所以便有了本文。出本文的原因还有一个:踩在众多牛人的基础上,却没摸...

    C#中最最简单浅显易懂的通过最新的ADB 工具 傻瓜 连接安卓模拟器或手机互相拷贝文件

    然而很多时候大家并不只是想拿来用,而是想怎么搞的,如何适应我的代码.这时那些繁复冗长复杂的控件代码反而是累赘.所以我写了个自己适合的代码. 它采用的github上最新的COOLAdb工具(我没用它的dll 引用,而是自己修改...

    C#怎么傻瓜式几句代码连接上夜神安卓模拟器,并且随心所欲地读和存文件

    然而很多时候大家并不只是想拿来用,而是想怎么搞的,如何适应我的代码.这时那些繁复冗长复杂的控件代码反而是累赘.所以我写了个自己适合的代码. 它采用的github上最新的COOLAdb工具(我没用它的dll 引用,而是自己修改...

    加密的PDF文件解密软件 可以打印

    天哪,有没有天理,难道就这么轻易放弃,噢,NO NO NO,我们是搞计算机的,我们的精神就是勇往直前,那我们就应该想办法搞定它。首先,到网上下载PDF转档的软件,下载了N次,但都让我很郁闷。第一次,只转了一页,...

    嵌入式实时操作系统uCOSII-邵贝贝

    我真是不想再花时间去调试那个廉价的内核了。后来得知我是该厂商的第一个客户,这个内核实际上没有完全测试和调试过。 还是回到正路上来,我决定使用内核A。五个用户的价格是5000美元,此外,我的每个产品还要付200...

    整站离线下载多版本工具httrack,绝对值得拥有

    可以说只要下载这个文件,不仅让你拥有下载网页离线工具,还为你提供了制作文件式快捷方式(即点击文件直到网站,我以前特想搞这么个快捷方式的,后来摸索了好长时间终于搞出来了)示例。正因为需要5积分,我来分解下,朋友...

    ucos源码详解

    难度很大,所以初学者一般看不懂,但是看ucos是非常科学的,一来对搞嵌入式方方面面非常有利,二来对你想在这方面拔高学习打下基础,也是阅读linux内核源码之前很好的入门书籍。如果想自己动手写写操作系统的书籍,...

    论文研究-怎样加强对全面质量管理的领导.pdf

    论文研究-怎样加强对全面质量管理的领导.pdf, 一、要下定决心,推进全面质量管理(以下简写为...更有人说,推进TQC是搞名堂,想出风头。 现在让我们看一看某车间1978年以来推进TQC所取得的成效吧。 (一)1977—1980年全年废

    各种容量的增量VHD文件,VHD骨灰级玩家必备!

    于是想出了个好办法,做了这个常用容量的增量VHD集合,省去了去磁盘管理或借助第三方工具创建增量VHD的麻烦,希望大家喜欢! 所有的增量VHD均已格式化成全容量NTFS分区,相同容量的VHD还能用于收缩,比起另外创建...

Global site tag (gtag.js) - Google Analytics