问题列表 - 第16304页

如何创建然后使用Perl的长Windows路径?

我有一个构建过程的一部分,在Windows中创建一个可怕的长路径.这不是我的错.这是几个目录深,没有一个目录名异常长; 它们只是很长很多,足以让它完成MAX_PATH(260个字符).我在这些名称中没有使用除ASCII以外的任何东西.

最大的问题是,在目标期间,爆炸发生在Module :: Build的内部深处dist,尽管我认为构建系统无关紧要,因为它们会创建相同的目录.

创建其中一个过长的目录File::Path失败:

 use File::Path qw( make_path );

 make_path( 'C:\\.....' ); # fails if path is over 260 chars
Run Code Online (Sandbox Code Playgroud)

类似地,一旦绝对路径结束,手动构建每个目录级别就会失败MAX_PATH.

这不是新的,不是Perl的错,而且Microsoft在命名文件,路径和命名空间中记录它.他们的修复建议\\?\在任何路径前添加访问Unicode文件名API.但是,这似乎不是Perl脚本的完整修复,因为它仍然失败:

 use File::Path qw( make_path );

 make_path( '\\\\?\\C:\\.....' );  # still fails if path is over MAX_PATH, works otherwise
Run Code Online (Sandbox Code Playgroud)

这可能是因为make_path拉开了它的参数,然后一次一个级别地遍历目录,所以\\?\只适用于顶层,这是在其中MAX_PATH.

向ActiveState挖出了一个错误报告,表明我还需要修改一些其他内容来获取Unicode文件名,而Jan Dubois在Re 2:Windows 2K/XP上的"长"文件名中提供了更多细节,尽管我是不确定它是否适用(并且非常古老).perlrun提到这个用途是转换的工作-C,但显然这部分被放弃了.perl RT队列有一个更新的错误60888:Win32:支持文件名中的完整unicode(使用Wide-system调用). …

windows perl long-filenames

19
推荐指数
2
解决办法
5929
查看次数

C++ STL unordered_map问题和疑惑

在Java和C#工作了几年之后,我现在又回到了C++.当然,我的编程风格受这些语言的影响,我倾向于感觉需要大量使用的特殊组件:HASH MAP.在STL中有hash_map,GCC说它已被弃用,我应该使用unordered_map.所以我转向它.我承认我不确定我正在做什么的可移植性,因为我必须使用编译器开关打开即将推出的标准的-std = c ++ 0x功能.无论如何,我对此很满意.如果我上课,我就无法工作

std::unordered_map<unsigned int, baseController*> actionControllers;
Run Code Online (Sandbox Code Playgroud)

并在一个方法中:

void baseController::attachActionController(unsigned int *actionArr, int len,
        baseController *controller) {
    for (int i = 0; i < len; i++){
        actionControllers.insert(actionArr[i], controller);
    }
}
Run Code Online (Sandbox Code Playgroud)

它出现了通常的象形文字说它无法找到插入...提示?

c++ stl hashmap c++11

4
推荐指数
2
解决办法
3940
查看次数

MySQL InnoDB是否总是需要每个外键约束的索引?

我正在使用phpMyAdmin.为了使用InnoDB设置外键约束(在Structure选项卡上的"Relation View"链接下),我似乎需要为要添加约束的字段添加索引.这显然会影响表上插入/更新的性能,特别是如果我想添加几个约束.是否可以在InnoDB中指定外键约束或关系完整性而无需为所需字段创建索引?

非常感谢JS,伦敦

mysql innodb foreign-keys

3
推荐指数
1
解决办法
1525
查看次数

使用指针时DO和Donts

这是一个简单而重要的问题.在C和C++中使用指针时有什么做点和做法,以确保在AIX上避免SEGMENTATION FAULT?

char*比字符数组更受欢迎?

c c++ pointers

7
推荐指数
3
解决办法
1902
查看次数

如何在使用Delphi的演员表中使用参数

如何在Delphi中执行此操作:

procedure ToggleVisibility(ControlClass : TControlClass);
var
  i : integer;
begin
  for i := 0 to ComponentCount - 1 do
    if Components[i] is ControlClass then
      ControlClass(Components[i]).Visible := not Control(Components[i]).Visible;
end;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,编译器不允许强制转换.有任何想法吗?

我正在使用Delphi 2007.

delphi casting

2
推荐指数
1
解决办法
666
查看次数

我怎么能找到除引号之间的所有空格?

我需要按空格分割字符串,但引号中的短语应保留未分割.例:

  word1 word2 "this is a phrase" word3 word4 "this is a second phrase" word5
Run Code Online (Sandbox Code Playgroud)

这应该导致preg_split之后的数组:

array(
 [0] => 'word1',
 [1] => 'word2',
 [2] => 'this is a phrase',
 [3] => 'word3',
 [4] => 'word4',
 [5] => 'this is a second phrase',
 [6]  => 'word5'
)
Run Code Online (Sandbox Code Playgroud)

我应该如何构建我的正则表达式呢?

PS.有相关的问题,但我不认为它适用于我的情况.接受的答案提供regexp来查找单词而不是空格.

php regex

7
推荐指数
1
解决办法
1257
查看次数

在ExtJS中调用超类方法的更好方法

我读过的所有ExtJS文档和示例都建议调用这样的超类方法:

MyApp.MyPanel = Ext.extend(Ext.Panel, {
  initComponent: function() {
    // do something MyPanel specific here...
    MyApp.MyPanel.superclass.initComponent.call(this);
  }
});
Run Code Online (Sandbox Code Playgroud)

我已经使用这种模式很长一段时间了,主要的问题是,当你重命名你的类时,你还必须改变所有对超类方法的调用.这很不方便,经常我会忘记,然后我必须追查奇怪的错误.

但是看完来源Ext.extend(),我发现,这不是我可以使用superclass()super()该方法Ext.extend()增加了原形:

MyApp.MyPanel = Ext.extend(Ext.Panel, {
  initComponent: function() {
    // do something MyPanel specific here...
    this.superclass().initComponent.call(this);
  }
});
Run Code Online (Sandbox Code Playgroud)

在这个代码中,将MyPanel重命名为其他东西很简单 - 我只需更改一行.

但我怀疑......

  • 我没有在任何地方看到过这种情况,旧的智慧说,我不应该依赖于无证件的行为.

  • 我没有在ExtJS源代码中找到这些superclass()supr()方法的单独使用.为什么在你不打算使用它们时创建它们?

  • 也许这些方法在某些旧版本的ExtJS中使用但现在已被弃用?但它似乎是一个非常有用的功能,你为什么要弃用呢?

那么,我应该使用这些方法吗?

javascript extjs extend superclass extjs3

29
推荐指数
3
解决办法
4万
查看次数

文件比较的逻辑

我试图编写一个用于文件比较的程序。例如:

文件1

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

文件2

1
2
@
3
4
5
Run Code Online (Sandbox Code Playgroud)

如果我逐行执行,我会得到:

1 == 1; 
2 == 2;
3 != @;
4 != 3;
5 != 4;
  != 5;
Run Code Online (Sandbox Code Playgroud)

但是,事实是这些文件之间的唯一区别是@。我想要得到这样的东西:

1 == 1;
2 == 2;
  != @;
3 == 3;
4 == 4;
5 == 5;
Run Code Online (Sandbox Code Playgroud)

哪种方法最好?无需使用任何外部应用程序,例如 diff、fc 等。

algorithm comparison file

5
推荐指数
1
解决办法
8353
查看次数

Spring Security自定义标记表单

我正在研究一个项目,我们使用freemarker作为模板语言.我没有使用defualt登录表单,而是创建了一个自定义控制器和一个与该控制器一起使用的自定义freemarker视图

码:

@Controller
public class LoginController {
private static finaal String LOGIN = "components/security/login";

@RequestMapping("/security/login")
public String login(){

    return LOGIN;
   }
}
Run Code Online (Sandbox Code Playgroud)

我的freemarker模板:

HTML代码:

<form action="${rc.contextPath}/j_spring_security_check" method="post">
    <label for="username">Username</label><input type="text" id="username" name="j_username"><br/>
    <label for="password">Password</label><input type="text" id="password" name="j_password"><br/>
   <input type="submit" value="Login!">
</form>
Run Code Online (Sandbox Code Playgroud)

我的applicationContext-security.xml

  <http>
    <logout/>
        <intercept-url pattern="/*" access="ROLE_ADMIN, ROLE_GUEST"/>
        <intercept-url pattern="/security/login" filters="none"/>
        <form-login login-page="/security/login" />
    </http>
Run Code Online (Sandbox Code Playgroud)

登录就像一个魅力但是,当用户输入错误的用户名或密码时,没有显示错误消息,我无法弄清楚如何做到这一点.你能帮我解决吗?

freemarker spring-security

0
推荐指数
1
解决办法
5069
查看次数

删除多边形中的孔

我有一个由点数组确定的多边形。

该多边形自身相交,从而在多边形本身中产生了一些孔。

我的问题是:如何忽略这些孔并仅获取多边形的外部点?

还是会有什么相同,并且可能更简单:应该使用哪种算法检查点是否在多边形内,以将多边形孔中的点检测为内部点?

提前致谢,

/罗杰

geometry polygon point-in-polygon

4
推荐指数
1
解决办法
1662
查看次数