我和Perl有这个奇怪的问题.我试图从我的Perl脚本中执行外部程序,这个外部程序将字符串+通配符作为参数.我的Perl程序看起来像这样
my $cmd_to_run = 'find-something-in-somedb myname* |'
open(procHandle, $cmd_to_run); # I am using open because I want to
# parse the output using pipes
Run Code Online (Sandbox Code Playgroud)
出于某些奇怪的原因,运行此Perl脚本(在Windows下)调用open
函数最终会出错:
'sqlselect' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我猜测它与*
我的命令字符串中存在有关,因此我将其删除,现在我的命令字符串看起来像这样
my $cmd_to_run = 'find-something-in-somedb myname|'
Run Code Online (Sandbox Code Playgroud)
现在,当我运行我的Perl脚本时,它工作得非常好.只有存在通配符时才会出现问题.
有些要点需要注意:
我在相同的cmd提示符(我正在执行这个perl脚本)中使用通配符char运行相同的命令,它运行得很好..
当我使用Windows中的_open函数在C中编程时,相同的命令有效.
问题似乎只有当存在通配符*时,至少这是我猜的
不,我没有在Unix上试过这个..
任何线索???
编辑:我发现这与ENV有关.我尝试运行的程序仅在搜索字符串中存在"*"通配符时使用"sqlselect"... find-something-in-somedb和sqlselect存在于同一位置.在哪种情况下perl如何能够找到"find-in-db"而不是"sqlselect"
对不起,我意识到原来的问题现在变成了别的东西..与"ENV"有关,而不是与Wildcard*有关
首先是导致我遇到问题的实际应用:
给定一组v[i]
在[0,360]度范围内的角度测量值,包含全部的最小间隔是多少v[i]?
注意:间隔可能在两侧,大约在0附近.
问题的抽象描述:
对于一个给定值的v[i]
,有什么价值c
和d
,使得
i
:dist(v[i],c) <= d
和d
尽可能小dist(x,y) = abs(((x-y + N/2 + N) mod N) - N/2)
?这在开放(无限)规模上是微不足道的,其中dist(x,y) = abs(x-y)
:
calculate max and min of all v[i]
c = (max + min)/2;
d = (max - min)/2;
Run Code Online (Sandbox Code Playgroud)
但是,对于有限尺度(模N)和上面给出的距离定义,找到c和d的最佳方法是什么?
有没有办法做到这一点O(n)(如果n是值的数量)?
我可以在私人方式中调用公共方法:
var myObject = function() {
var p = 'private var';
function private_method1() {
// can I call public method "public_method1" from this(private_method1) one and if yes HOW?
}
return {
public_method1: function() {
// do stuff here
}
};
} ();
Run Code Online (Sandbox Code Playgroud) 我想知道我的想法.我想问你是否知道任何与此相关的图书馆或文章.或者你可以告诉我这是一个愚蠢的想法,为什么.
我有一个类,我想在运行时动态地添加方法/属性.我很清楚使用复合/命令设计模式和使用嵌入式脚本语言来完成我所说的技巧.我只是在探索这个想法.没必要说这是个好主意.
class Dynamic
{
public:
typedef std::map<std::string, boost::function<void (Dynamic&)> > FuncMap;
void addMethod(const std::string& name, boost::function<void (Dynamic&)> func) {
funcMap_[name] = func;
}
void operator[](const std::string& name) {
FuncMap::iterator funcItr = funcMap_.find(name);
if (funcItr != funcMap_.end()) {
funcItr->second(*this);
}
}
private:
FuncMap funcMap_;
};
void f(Dynamic& self) {
doStuffWithDynamic(self);
}
int main()
{
Dynamic dyn;
dyn.addMethod("f", boost::bind(&f, _1));
dyn["f"]; // invoke f
}
Run Code Online (Sandbox Code Playgroud)
我的想法是我可以在运行时将名称"f"重新绑定到任何函数.我知道字符串查找和boost :: function与原始函数指针的性能问题.通过一些努力工作和非便携式黑客攻击,我认为我可以减轻性能问题.
使用相同类型的技术,我可以通过使用"v-table"进行名称查找和基于动态运行时属性的调度函数调用来执行"运行时继承".
如果只想告诉我使用smalltalk或Objective-C,我可以尊重这一点,但我喜欢我的C++并且我坚持使用它.
我使用下面的代码尝试创建一个字符串向量数组,我希望有一个包含3个项目的数组,每个项目都是一个字符串向量:
Vector<String> Result_Vector_Array[]=new Vector<String>[3];
Run Code Online (Sandbox Code Playgroud)
但NB强调该行为错误(通用数组创建),有什么不对?这样做的正确方法是什么?我知道也有Arraylist,但它没有同步,所以我想使用矢量.
我知道自己编写代码是微不足道的,但是如果它已经内置到PHP中而没有更多的代码来维护,是否有一个用于"压缩"PHP数组的内置函数?换句话说,假设我创建了一个数组:
$array = array();
$array[2000] = 5;
$array[3000] = 7;
$array[3500] = 9;
Run Code Online (Sandbox Code Playgroud)
我想要的是一个数组,其中$ array [0] == 5,$ array [1] == 7,$ array [2] == 9.
我能做到这一点:
function array_defragment($array) {
$squashed_array = array();
foreach ($array as $item) {
$squashed_array[] = $item;
}
return $squashed_array;
}
Run Code Online (Sandbox Code Playgroud)
...但它似乎是PHP内置的东西 - 我只是在文档中找不到它.
我正在设置我的网站,通过短信接收来自人们的信息.它的工作方式是文本编号,然后该服务将HTTP POST发送到我指定的URL.我听说.asmx文件比.aspx文件更好,因为它们不会经历整个页面生命周期.但是,我真的不明白如何运行.asmx文件,甚至可以通过POST调用它,即www.mysite.com/webservice.asmx?我知道我可以使用.aspx文件,但我想在我开展这项工作之前检查是否有更好的方法.
感谢您的见解!
在创纪录的时间内编写内部网站时,我整天都在为Django流口水,但现在我注意到我的ForeignKeys在模型中的效率非常低.
我有一个有6个ForeignKeys的模型,基本上是查找表.当我查询所有对象并在模板中显示它时,每个项目运行大约10个查询.这里有一些代码,应该更好地解释它:
class Website(models.Model):
domain_name = models.CharField(max_length=100)
registrant = models.ForeignKey('Registrant')
account = models.ForeignKey('Account')
registrar = models.ForeignKey('Registrar')
server = models.ForeignKey('Server', related_name='server')
host = models.ForeignKey('Host')
target_server = models.ForeignKey('Server', related_name='target')
class Registrant(models.Model):
name = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
......还有5个简单的表格.有155个网站记录,在我正在使用的视图中:
Website.objects.all()
Run Code Online (Sandbox Code Playgroud)
它最终执行1544个查询.在模板中,我使用了所有外来字段,如:
<span class="value">Registrant:</span> <a href="/filter/registrant/{{ website.registrant.id }}">{{ website.registrant.name }}</a><br />
Run Code Online (Sandbox Code Playgroud)
所以我知道它会运行很多查询...但似乎这是过分的.这是正常的吗?我不应该这样做吗?
我对Django很新,所以希望我只是做一些愚蠢的事情.这绝对是一个非常棒的框架.
我有两个相互重叠的锚定图像,用换行符分隔.我希望图像直接位于彼此之上,但在Firefox中,图像之间存在差距.它适用于IE7.我能够解决这个问题的唯一方法是改变行高(我不想这样做).
<a href="image.jpg">
<img height="75" width="75" src="image.jpg" />
</a>
<br/>
<a href="image2.jpg">
<img height="75" width="75" src="image2.jpg" />
</a>
Run Code Online (Sandbox Code Playgroud) 要使我的WPF DataGrid控件绑定到DataTable对象,我需要做什么?
我已经忍受了好几天了.即使绑定和查询都正常工作,并且表中有可观察的数据 - 数据网格中也没有显示任何内容.
我的XAML代码类似于:
<Window x:Class="DataGridTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:TK="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
Title="Window1" Height="300" Width="300">
<Grid>
<TK:DataGrid ItemsSource="{Binding Path=DTUsers}" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我的C#代码隐藏类似于:
(DAO是我的数据访问对象)
public partial class Window1 : Window
{
public dao DAO = new dao (ConnectionString) ;
public System.Data.DataTable DTUsers { get; set; }
public Window1()
{
InitializeComponent();
if (DAO != null)
DTUsers = DAO.Query( @"SELECT * FROM users" );
// Returns a DataTable object containing user records.
// I have confirmed that this returns my data correctly.
} …
Run Code Online (Sandbox Code Playgroud)