上一页 1 2 3 4 5 6 ··· 30 下一页
摘要: F2运行Shift+F11添加/删除断点Ctrl+I多行退格Ctrl+Alt+I多行回格Ctrl+M多行注释Ctrl+Alt+M取消多行注释Ctrl+U删除行Ctrl+Shift+U删除行Ctrl+Alt+T标记Ctrl+PgUp跳到上个标记Ctrl+PgDown跳到下个标记Ctrl+G跳转到某行Ctrl+F查找文字Ctrl+N打开空白文件Ctrl+Shift+R替换 阅读全文
posted @ 2013-01-10 22:16 瑞尼书苑 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 目前,我们常用的配置文件格式有XML和ini, XML层次分明,但其缺点就是写起来太繁杂,对一些关键字如<>之类的处理比较特殊。而ini呢,配置不够灵活,只有简单的段-键-值模式,对于一些多层结构的配置,或者一些列表类型的配置,就显得力不从心了,往往需要编码人员自己分割字符串。 Lua脚本非常简洁清晰,是非常适合做配置文件的,无论是映射表型配置,还是列表型配置,还是简单的键值配置,lua都可以完全胜任。而且lua格式清新简洁,一看就懂。 所以,用lua作为程序的配置文件是非常明智的,但是,在C++中解释lua脚本的配置文件,仅仅通过lua提供的原始API,就显得非常吃力了,所以我封 阅读全文
posted @ 2012-11-22 22:16 瑞尼书苑 阅读(416) 评论(0) 推荐(0) 编辑
摘要: XSS攻击过滤The goal of this function is to be a generic function that can be used to parse almost any input and render it XSS safe. For more information on actual XSS attacks, check out http://ha.ckers.org/xss.html. Another excellent site is the XSS Database which details each attack and how it works.PH 阅读全文
posted @ 2012-11-22 21:33 瑞尼书苑 阅读(2164) 评论(0) 推荐(0) 编辑
摘要: 类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实现)。所以我们访问成员函数是间接获得地址的。所以这样也就增加了一定的时间开销,这也就是为什么我们提倡把一些简短的,调用频率高的函数声明为inl 阅读全文
posted @ 2012-10-15 15:11 瑞尼书苑 阅读(179) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <boost/regex.hpp> using namespace std; int main(){ boost::regex reg("\\{([\\w]+)\\}"); std::string s="{afd}lookki{vvvv}kjkj{ddd}{ssss}{fddda}"; boost::sregex_iterator end; for (boost::sregex_iterator it(s.begin(),s.end(),reg); it != end; it 阅读全文
posted @ 2012-10-12 11:29 瑞尼书苑 阅读(217) 评论(0) 推荐(0) 编辑
摘要: #include<string>std::stringws2s(conststd::wstring&ws){std::stringcurLocale=setlocale(LC_ALL,NULL);//curLocale="C";setlocale(LC_ALL,"chs");constwchar_t*_Source=ws.c_str();size_t_Dsize=2*ws.size()+1;char*_Dest=newchar[_Dsize];memset(_Dest,0,_Dsize);wcstombs(_Dest,_Source, 阅读全文
posted @ 2012-10-12 11:24 瑞尼书苑 阅读(1174) 评论(0) 推荐(0) 编辑
摘要: http://dozb.bokee.com/1976532.html模板类:lbasic_regex 用来保存一个“正则表达式”的类。lsub_match 继承于pair<Iterator,Iterator>迭代器组,用来表示匹配的一个结果。lmatch_results sub_match的容器,用来表示一次搜索或匹配算法的所有结果,类似于vector<sub_match>。算法:lregex_math匹配算法,测试一个字符串是否和一个正则式匹配,并通过match_results返回结果。lregex_find 查找算法,查找字符串的一个和正则式匹配的字串,并通过mat 阅读全文
posted @ 2012-10-11 17:25 瑞尼书苑 阅读(630) 评论(0) 推荐(0) 编辑
摘要: C++ 使用正则表达式分割字符串#include <iostream>#include <string>#include <boost/regex.hpp>int main(){ std::string s = "who,lives:in-a,pineapple under the sea?"; boost::regex re(",|:|-|\\s+"); boost::sregex_token_iterator p(s.begin(),s.end(),re,-1); boost::sregex_token_itera 阅读全文
posted @ 2012-10-11 17:19 瑞尼书苑 阅读(4190) 评论(0) 推荐(0) 编辑
摘要: 为了能够让用户更清晰的写采集规则,特意把采集回来的源码经过精简之后再进行处理,比如,要删除 <style> </style> <script> </script>注释等内容去除标签垃圾属性等,使用正则表达式,大一点的网页数据,匹配替换为空一次竟然可以达到几百毫秒,吓死人,故自己写了个函数,同样的数据大小1-3毫秒完成.Cpp代码<span><spanstyle="color:#000000;">//------这上面几段垃圾html代码删不掉了,请无视它,自动跑进去的classBaseLib{publi 阅读全文
posted @ 2012-10-11 16:40 瑞尼书苑 阅读(825) 评论(0) 推荐(0) 编辑
摘要: shared_ptr很好地消除了显式的delete调用,如果读者掌握了它的用法,可以肯定delete将会在你的编程字典中彻底消失 。但这还不够,因为shared_ptr的构造还需要new调用,这导致了代码中的某种不对称性。虽然shared_ptr很好地包装了new表达式,但过多的显式new操作符也是个问题,它应该使用工厂模式来解决。因此,shared_ptr在头文件<boost/make_shared.hpp> 中提供了一个自由工厂函数(位于boost名字空间)make_shared<T>(),来消除显式的new调用,它的名字模仿了标准库的 make_pair(),声明 阅读全文
posted @ 2012-09-29 14:21 瑞尼书苑 阅读(5189) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 30 下一页