我注意到我可以通过编写start filename来启动一个带有相关处理程序的程序.但是,对于某些文件,我得到的只是一个控制台,我不知道为什么.我正在尝试在MFC中填充列表控件,我想让程序和它的关联处理程序在我双击选择时运行.有没有更好的方法,或解释为什么这不起作用?
这是可能成为问题的代码:
int selection = listControl.GetCurSel();
CString text;
listControl.GetText(selection,text);
string std_str = StringUtils::CStringToString(text);
string st = string("start \"")+std_str+string("\"");
const char* command = st.c_str();
system(command);
我需要在Python中获得较少的n个列表.我需要这个非常快,因为它是性能的关键部分,需要重复很多次.
n通常不大于10,列表通常有大约20000个元素.每次调用该函数时,列表总是不同的.无法进行排序.
最初,我写了这个函数:
def mins(items, n):
mins = [float('inf')]*n
for item in items:
for i, min in enumerate(mins):
if item < min:
mins.insert(i, item)
mins.pop()
break
return mins
Run Code Online (Sandbox Code Playgroud)
但是这个函数无法击败对整个列表进行排序的简单排序(项目)[:n].这是我的测试:
from random import randint, random
import time
test_data = [randint(10, 50) + random() for i in range(20000)]
init = time.time()
mins = mins(test_data, 8)
print 'mins(items, n):', time.time() - init
init = time.time()
mins = sorted(test_data)[:8]
print 'sorted(items)[:n]:', time.time() - init
Run Code Online (Sandbox Code Playgroud)
结果:
mins(items, n): 0.0632939338684
sorted(items)[:n]: 0.0231449604034
Run Code Online (Sandbox Code Playgroud)
sorted()[:n]快三倍.我相信这是因为:
有没有办法击败sorted()[:n]?我应该使用C扩展,Pyrex或Psyco或类似的东西吗? …
我偶尔会在Emacs中遇到Cx Cc,而我打算只打Cx或Cc.当然,这会关闭所有打开的帧和缓冲区而不进行确认.我知道我可以让Emacs提示"你确定要退出吗?",但我不想一直这样做,这会让人讨厌.我只是希望它在打开超过N个文件(或缓冲区)时执行此操作.
所以我想将Cx Cc绑定到一个函数:
(if (< number of open buffers n)
(save-buffers-kill-emacs)
(are-you-sure))
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何获取打开缓冲区的数量(或打开的帧数,或打开的文件数等).
我正在为一个专有的Windows CE 4.2设备编写一个C#应用程序(我没有这些规格或其他任何信息.我可以访问文件系统,基本上就是它.)我也是无法获得原始制造商的支持.
现在,我可以很好地安装.NET Compact框架,一切都可以运行一段时间.但每隔一段时间,当设备重置时,它会删除框架,GAC以及与之相关的所有内容.
我知道这不仅仅是硬重置跳回工厂默认值,因为:
我知道没有太多可以继续下去,但也许一些Windows CE大师将能够告诉我为什么会发生这种情况,并且如果有一些理智的方法可以避免它.我对Windows CE知之甚少,所以我知道,它可能是完全标准的行为.
就此而言,有关如何进一步解决这个问题的建议吗?目前,我能看到的最佳解决方案是在每次启动时重新安装所有内容,但这看起来有点笨拙.
编辑: 重置后,在文件系统的根目录中找到GACLOG.TXT
CGACUTIL:初始化2008年8月12日
20:43:57.000 CGACUTIL:已初始化
12/08/2008 20:43:57.000 CGACUTIL:
删除Microsoft .NET CF 3.5.GAC
12/08/2008 20:43:57.000 CGACUTIL:完成
12/08/2008 20:43:57.000 CGACUTIL:
退出2008年8月12日20:43:57.000
所以,是的,它肯定会删除GAC.为什么,以及如何阻止它?
有很多用于处理用户权限的rails插件.我对hobo gem中的实现印象深刻,但我不确定我是否可以使用此功能而不是其他部分.GateKeeper是一个非常聪明的实现,但有一些错误,虽然它足够小我可能自己修复它.Restful_ACL为您提供了一种用于检查创建的类方法,这意味着您无法对相关实例进行任何检查(不确定它是否具有范围查找).
我想要提供一个范围版本的ActiveRecord #find,它只能查找当前用户可以看到的内容.这应该足够强大,可以说,您只能看到您或您的朋友拥有的图库中的图片.
作为奖励,它可能会阻止您无权执行的创建或更新(在before_*或验证步骤中),包括将您自己的记录与其他用户或图库相关联,或创建此类记录.
我有subversion存储库,可以正常使用所有用户所需的密码验证.我的配置发布在下面.如何修改此配置以便允许单个用户对我的某个存储库具有只读权限?
提供的示例需要使用SVNParentPath而不是SVNPath.前者允许您指定包含多个subversion存储库的目录.
<VirtualHost *:80>
ServerAdmin apache@mycompany.org
DocumentRoot "d:/Apache2/htdocs/"
ServerName code.mycompany.org
ErrorLog "logs/src.mycompany.org-error.log"
CustomLog "logs/src.mycompany.org-access.log" common
SetOutputFilter DEFLATE
<Location />
DAV svn
SVNParentPath D:\SVN
AuthType Basic
AuthName "My Repository"
AuthUserFile conf/myteam.pwd
Require valid-user
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 当我编写应用程序时,我使用System.Data接口(IDbConnection,IDbCommand,IDataReader,IDbDataParameter等...).我这样做是为了减少供应商的依赖性.除非,我正在做一个简单的测试应用程序,在咨询时看起来似乎是道德的事情.
但是,我看到的所有代码似乎都使用System.Data.SqlClient命名空间类或其他特定于供应商的类.在杂志和书籍中,很容易将其归结为微软的影响力以及他们的营销转向仅针对SQLServer进行编程.但它看起来像我看到的几乎所有.NET代码都使用SQLServer特定的类.
我意识到供应商特定的类具有更多功能,例如向SqlCommand对象添加参数是一种方法,其中将其添加到IDbCommand是令人恼火的4+行代码.但话又说回来; 为这些限制编写一个小助手类非常简单.
我还想知道当SQLServer是当前目标客户端时是否对接口进行编程是过度工程的,因为它不是立即需要的.但我不认为这是因为针对接口的编程成本太低,因为减少供应商依赖性提供了如此巨大的好处.
您是否使用供应商特定的数据类或接口?
编辑:总结下面的一些答案,并在阅读时提出一些想法.
使用接口实现供应商中立的可能陷阱:
使用接口的正面理由:
如何添加要插入Java代码模板的新变量.如何在Window-> Preferences-> Java-> Code Style-> Code Templates-> Code-> New Java Files-> Edit-> Insert Variable ...?中向列表添加变量?
目前,我的新文件创建时使用:
${filecomment}
${package_declaration}
${typecomment}
${type_declaration}
Run Code Online (Sandbox Code Playgroud)
我希望他们能够像以下一样创建:
${begin_filecomment}
${package_declaration}
${typecomment}
${type_declaration}
${end_filecomment}
Run Code Online (Sandbox Code Playgroud)
其中begin_filecomment和end_filecomment出现在"插入变量"列表中.
在Clearcase中,我可以为给定的文件集生成"标签",并始终返回到该标签,以重新生成所有文件,就像我生成标签时一样.
我如何在Subversion中执行此操作?我正在使用Tortoise前端[Windows]到SVN,我不知道如何实现这个功能.
我有一个包含2个表的数据库.
其中一个表包含一行,包含从0到10的数字.
在PHP中,我这样做:
$query = "SELECT ".$param." FROM issues WHERE ".$param." >=0";
$result = @mysql_query($query) or showError("query failed");
if (!($record = mysql_fetch_array($result))) return null;
return $record;
Run Code Online (Sandbox Code Playgroud)
$ param保存行的名称.
我有点期望得到一个数字保持0到10的数字,但我得到一个包含2个元素的数组:
array(
[0] = 0
[row_name] = 0
.
.
. // AND SO ON
)
Run Code Online (Sandbox Code Playgroud)
就是这样.
我之前从未使用过这些函数,www.php.net没有任何真正有用的例子......