我的程序中有几个函数看起来像这样:
void foo(int x, int y)
Run Code Online (Sandbox Code Playgroud)
现在我希望我的程序采用如下字符串:
foo(3, 5)
Run Code Online (Sandbox Code Playgroud)
并执行相应的功能.实现这一目标最简单的方法是什么?
当我直截了当地说,我的意思是合理的可扩展性和优雅,但编码不应该花太长时间.
编辑:
虽然使用真正的脚本语言当然可以解决我的问题,但我仍然想知道是否有一种快速的方法可以在纯C++中实现它.
如何验证不在表单标记内的某些输入?
我找到的所有样本都有一个表单标签,但我想验证一些不在表单内的输入.
我想在构建解决方案之前使用NAnt修改.h文件中的字符串.
.h文件中有一个宏:#define SERVER_ADDRESS"www.customserver.net",我想在部署软件之前修改字符串,这样每个构建都可以通过在命令行中传递地址来实现自定义地址.
有谁知道如何做到这一点?
谢谢!
类似于硬编码文字是否可以接受?,但我在这里特别想到"魔法字符串".
在一个大型项目中,我们有一个配置选项表,如下所示:
Name Value
---- -----
FOO_ENABLED Y
BAR_ENABLED N
...
Run Code Online (Sandbox Code Playgroud)
(数以百计).
通常的做法是调用泛型函数来测试这样的选项:
if (config_options.value('FOO_ENABLED') == 'Y') ...
Run Code Online (Sandbox Code Playgroud)
(当然,可能需要在系统代码的许多地方检查相同的选项.)
添加新选项时,我正在考虑添加一个隐藏"魔术字符串"的函数,如下所示:
if (config_options.foo_enabled()) ...
Run Code Online (Sandbox Code Playgroud)
然而,同事们认为我已经过火了并反对这样做,更喜欢硬编码,因为:
麻烦的是,我可以看到他们的观点!实际上,我们永远不会出于任何原因重命名选项,因此我能为我的函数考虑的唯一优势是编译器会捕获像fo_enabled()这样的拼写错误,但不能捕获'FO_ENABLED'.
你怎么看?我错过了其他任何优点/缺点吗?
除了Ask,Google,Microsoft和Yahoo!之外,我一直在考虑禁止每一个爬虫.来自我的网站.
这背后的原因是我从来没有看到任何其他网络爬虫生成任何流量.
我的问题是:
更新:
到目前为止,我使用黑名单方法:如果我不喜欢爬虫,我将它们添加到禁用列表中.
我不是黑名单的粉丝,因为这是一个永无止境的故事:那里总有更多的爬虫.
我并不担心真正丑陋的行为不端的爬虫,它们会被自动检测和阻止.(无论如何,他们通常不会要求robots.txt :)
但是,许多爬虫在任何方面都没有真正行为不端,它们似乎对我/我的客户没有任何价值.
例如,有几个抓取工具为网站提供支持,声称他们将成为下一个Google; 只有更好.我从未见过来自他们的任何流量,我对他们变得比上面提到的四个搜索引擎中的任何一个都更好持怀疑态度.
更新2:
我一直在分析几个站点的流量一段时间,似乎对于合理的小站点,每天有100个独特的访问者(=我无法识别为不是人类的访问者).大约52%的生成流量来自自动化流程.
60%的自动访问者没有阅读robots.txt,40%(占总流量的21%)确实请求robots.txt.(包括Ask,Google,Microsoft和Yahoo!)
所以我的想法是,如果我阻止所有似乎没有为我生成任何价值的表现良好的爬虫,我可以将带宽使用和服务器负载减少大约12%-17%.
可能重复:
用于Javascript正则表达式的转义字符串
我有这样的消息:
{1}允许最多{0}个字符
我有一个函数来使用传递的参数创建一个消息
for(var i = 0; i < agrs.length; i++){
reg = new RegExp('\{'+i+'\}', 'gi');
key = key.replace(reg,agrs[i])
}
Run Code Online (Sandbox Code Playgroud)
问题是它无法使用参数i创建reg exp.
有什么办法实现这个目标?
我有一个包含Google Adsense广告的页面.内容位于左侧,广告位于右侧.下载页面时,它首先检索内容,然后从Google Adsense广告开始.在此期间,在完整下载整个广告之前,不会提取页面的其余部分(页脚图像).
如何首先加载我的所有页面(内容,图片)并加载广告?
我有一个令人讨厌的SQL语句似乎很简单,但它看起来很糟糕.我希望sql返回带有userdata的结果集,以便某个用户是结果集中的第一行,如果用户的emailaddress在公司表中.
我有这个SQL返回我想要的但我觉得它看起来很糟糕:
select 1 as o, *
from Users u
where companyid = 1
and email = (select email from companies where id=1)
union
select 2 as o, *
from Users u
where companyid = 1
and email <> (select email from companies where id=1)
order by o
Run Code Online (Sandbox Code Playgroud)
顺便说一句,来自用户表的emailaddress可以在很多公司,所以不能加入emailaddress :-(
您对如何改进该声明有任何想法吗?
我正在使用Microsoft SQL Server 2000.
编辑:我使用这个:
select *, case when u.email=(select email from companies where Id=1) then 1 else 2 end AS SortMeFirst
from Users u
where u.companyId=1
order by …Run Code Online (Sandbox Code Playgroud) 有没有办法在遵循XHTML Strict时从特定索引启动有序列表?使用start = n运行良好,但已弃用 ...目的是通过分页恢复索引.
我看到了一些CSS解决方案的引用,但是起始索引不能像不推荐使用的start中的属性那样使用.
javascript ×3
.net ×1
adsense ×1
ant ×1
c++ ×1
dependencies ×1
hard-coding ×1
html ×1
html-lists ×1
ivy ×1
jquery ×1
literals ×1
nant ×1
regex ×1
robots.txt ×1
scripting ×1
select ×1
seo ×1
sorting ×1
sql ×1
string ×1
union ×1
web-crawler ×1