我一直在使用Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0来读取.csv,.xls和.xlsx文件.
我刚刚发现原生64位模式都不支持这些技术!
我有两个问题:
在64位模式下以编程方式读取.csv,.xls和.xlsx文件的支持方式是什么.我无法在任何地方找到答案.
如果我无法读取所有三种文件类型,那么在64位环境中读取.csv文件的最佳方法是什么?
笔记:
更新:
我可以使用CorFlags强制应用程序以32位模式运行,这是有效的,但是不可取.
所以我总是听说类字段(基于堆)被初始化,但基于堆栈的变量不是.我还听说记录成员(也是基于堆栈的)也没有初始化.编译器警告局部变量未初始化([DCC警告] W1036变量'x'可能尚未初始化),但不会对记录成员发出警告.所以我决定进行测试.
对于所有记录成员,我总是从Integers得到0而从布尔都得到假.
我尝试打开和关闭各种编译器选项(调试,优化等),但没有区别.我的所有记录成员都正在初始化.
我错过了什么?我正在使用Delphi 2009 Update 2.
program TestInitialization;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TR = Record
Public
i1, i2, i3, i4, i5: Integer;
a: array[0..10] of Integer;
b1, b2, b3, b4, b5: Boolean;
s: String;
End;
var
r: TR;
x: Integer;
begin
try
WriteLn('Testing record. . . .');
WriteLn('i1 ',R.i1);
WriteLn('i2 ',R.i2);
WriteLn('i3 ',R.i3);
WriteLn('i4 ',R.i4);
WriteLn('i5 ',R.i5);
Writeln('S ',R.s);
Writeln('Booleans: ', R.b1, ' ', R.b2, ' ', R.b3, ' …Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能使一个方法在被称为类方法时比在被调用为实例方法时表现不同.
例如,作为一个技能提升项目,我正在编写一个Matrix类(是的,我知道那里已经有非常好的矩阵类).我已经为它创建了一个类方法,它identity返回一个指定大小的单位矩阵.
现在,当调用一个实例时Matrix,似乎不需要指定大小; 它应该返回一个与Matrix调用它相同大小的单位矩阵.
换句话说,我想定义一个方法,可以确定它是否是通过实例调用的,如果是,则访问该实例的属性.不幸的是,即使在深入阅读文档和一些Google搜索之后,我也没有找到任何暗示这是可行的.有谁知道不同?
编辑:
哇!显然,我还不太习惯一流的功能.这就是我最终得到的结果 - 感谢Unknown提供密钥!
class Foo(object):
def __init__(self, bar):
self.baz = bar
self.bar = MethodType(lambda self: self.__class__.bar(self.baz), self, self.__class__)
@classmethod
def bar(cls, baz):
return 5 * baz
Foo.bar(3) # returns 15
foo = Foo(7)
foo.bar() # returns 35
Run Code Online (Sandbox Code Playgroud)
编辑2:
只是一个简单的说明 - 这种技术(以及下面介绍的大多数)不适用于定义的类__slots__,因为您无法重新分配该方法.
在使用正则表达式帮助解决Python挑战中的问题时,我遇到了一些使我感到困惑的行为.
从这里:
(...)匹配括号内的正则表达式.
和
'+'使得结果RE匹配前一个RE的1次或更多次重复.
所以这是有道理的:
>>>import re
>>>re.findall(r"(\d+)", "1111112")
['1111112']
Run Code Online (Sandbox Code Playgroud)
但这不是:
>>> re.findall(r"(\d)+", "1111112")
['2']
Run Code Online (Sandbox Code Playgroud)
我意识到当正则表达式中存在组时,findall只返回组,但为什么只返回'2'?比赛中所有1的发生了什么?
使用Spring MVC,您可以指定特定URL将由特定方法处理,并且您可以指定特定参数将映射到特定参数,如下所示:
@Controller
public class ImageController {
@RequestMapping("/getImage")
public String getImage( @RequestParam("imageId") int imageId, Map<String,Object> model ) {
model.put("image",ImageService.getImage(imageId));
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但现在我想测试带有imageId参数的http请求将正确调用此方法.换句话说,如果我删除或更改任何注释,我想要一个会破坏的测试.有没有办法做到这一点?
很容易测试getImage是否正常工作.我可以创建一个ImageController并使用适当的参数调用getImage.但是,这只是测试的一半.测试的另一半必须是当适当的HTTP请求进入时,Spring框架是否会调用getImage().我觉得我还需要对此部分进行测试,特别是当我的@RequestMapping注释变得更复杂并调用复杂参数时条件.
如果我删除第4行,你能告诉我一个测试会破坏@RequestMapping("getImage")吗?
它一定是jquery
我有文件text.html与6 div(a,b,c,d,e,f)
在另一个文件中我有一个div,我喜欢它将a + b + c + d + e + f的内容填充到该单个div中
我试过.load =但是b remplace a我尝试追加,但我需要一个临时变量
所以现在我被卡住了
该代码从文件textes.html获取内容... div #a并将内容放入div #right,但第二次释放右侧的内容与右侧b
我喜欢将内容添加到a + b而不是b
$(document).ready(function(){
var temp = load('textes.html #nicolas');
$('#right').append(temp);
var temp = load('textes.html #antoine');
$('#right').append(temp);
.
.
.
.
return false;
});
Run Code Online (Sandbox Code Playgroud)
该代码是应该工作的背后的想法,但我不能使ajax .load()将内容加载到变量中以将内容附加到div ...
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: "textes.html",
cache: false,
success: function(html){
$("#right").append(html);
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
该代码加载WHOLE html文件,我只想获得一些选定的DIV#
在Delphi中,Image Base链接器选项默认为00400000.
根据帮助:
指定已编译映像的首选加载地址.通常仅在编译DLL时更改此值.默认= 400000
在EXE上更改它没有效果吗?效果会是什么?地址是相对于每个进程的吗?
希望这不是太笼统或奇怪的问题.此外,无法在谷歌上找到它,不知道这是否只是一个问题太愚蠢或者我是否在谷歌失败.
所以,我忘了我从哪里读到这个,但是,它说使用'++ x'(或其他任何变量)以某种方式更优化或者你可能称之为'x ++'.
那么,这只是看起来还是真的更快?就像,他们做同样的事情,这就是我要问的原因.
设置:
有一个中央AD域(CENTRAL)和多个独立的森林,每个森林都有自己的域(BRANCH1,BRANCH2,BRANCH3)
CENTRAL和所有其他域之间存在双向域信任.
我正在处理的应用程序在CENTRAL域上运行,并使用凭据CENTRAL\ldapreader在所有域上执行LDAP搜索.
这适用于CENTRAL和BRANCH1,但BRANCH2和BRANCH3拒绝连接时出现无效的凭据错误.如果搜索使用这些域中的帐户(BRANCH2\ldapreader等),那么搜索工作正常.
将AD读取为LDAP服务器需要多少级别的权限?我发现的所有东西都表明这是允许的AUTENTICATED USERS,由于双向信任,它应该可以与CENTRAL\ldapreader一起使用,但这不是我们得到的行为.
我在字符串上使用replaceAll()来替换任何带有"[two letters]"的字母.所以xxxaxxx到xxx [ab] xxx.我不希望已经被替换的那些再次完成(转到xxx [a [cb]] xxx)...
一种简单的方法是排除任何由"["或后跟"]"所引用的字母.什么是正确的正则表达式使用?
replaceAll(foofoofoo,"[ab]");