小编Nat*_*teD的帖子

为什么我应该使用Perl而不是Ruby/Python/etc?

我喜欢Ruby并且已经使用它几年来处理日常脚本任务.最近,我有很多人告诉我,Perl就在那里.我没有任何反对Perl的东西,但它似乎有点落后于时代.

然而,这可能只是我的看法,所以我问你们所有人,是什么让Perl如此出色?我真的在这里寻求信息; 我想理解为什么这种语言有如此热烈的追随者.

perl

18
推荐指数
3
解决办法
2万
查看次数

如何避免更改堆栈大小并避免在C#中获得堆栈溢出

我一直想在网上和这个网站上找几个小时回答这个问题的答案,我不在那里.

我知道.NET会为应用程序分配1MB,并且最好通过重新编码而不是强制堆栈大小来避免堆栈溢出.

我正在开发一个"最短路径"的应用程序,可以运行大约3000个节点,此时它会溢出.这是导致问题的方法:

    public void findShortestPath(int current, int end, int currentCost)
    {
        if (!weight.ContainsKey(current))
        {
            weight.Add(current, currentCost);
        }
        Node currentNode = graph[current];
        var sortedEdges = (from entry in currentNode.edges orderby entry.Value ascending select entry);
        foreach (KeyValuePair<int, int> nextNode in sortedEdges)
        {
            if (!visited.ContainsKey(nextNode.Key) || !visited[nextNode.Key])
            {
                int nextNodeCost = currentCost + nextNode.Value;
                if (!weight.ContainsKey(nextNode.Key))
                {
                    weight.Add(nextNode.Key, nextNodeCost);
                }
                else if (weight[nextNode.Key] > nextNodeCost)
                {
                    weight[nextNode.Key] = nextNodeCost;
                }
            }
        }
        visited.Add(current, true);
        foreach (KeyValuePair<int, int> nextNode in sortedEdges)
        {
            if(!visited.ContainsKey(nextNode.Key) …
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow

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

如何将字符串转换为Point?

我有一个格式为"x,y"的字符串列表.我想把它们全部变成积分.我能找到的最好的Point构造函数有两个整数."14,42"变成C#的最佳方式是什么new Point(14,42);

我知道Regex就是这样做的/(\d+),(\d+)/,但是我很难将这两个匹配组转换成C#中的int.

c# regex

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

Jquery根据其中一个子元素的值查找XML元素

我正在研究一个简单的XML电话本应用程序来学习JQuery,我无法弄清楚如何做这样的事情:当用户在文本框中输入联系人的第一个名字时,我想找到它的整个记录人.XML看起来像这样:

<phonebook>
<person>
    <number> 555-5555</number>
    <first_name>Evelyn</first_name>
    <last_name>Remington</last_name>
    <address>Edge of the Abyss</address>
    <image>path/to/image</image>
</person>
<person>
    <number>+34 1 6444 333 2223230</number>
    <first_name>Max</first_name>
    <last_name>Muscle</last_name>
    <address>Mining Belt</address>
    <image>path/to/image</image>
</person>
</phonebook>
Run Code Online (Sandbox Code Playgroud)

我能用jQuery做的最好的事情是这样的:

var myXML;
function searchXML(){
  $.ajax({
     type:"GET",
     url: "phonebook.xml",
     dataType: "xml",
     success: function(xml){myXML = $("xml").find("#firstNameBox").val())}
  });
 }
Run Code Online (Sandbox Code Playgroud)

我想要它做的是返回整个<person>元素,以便我可以迭代并显示所有人的信息.任何帮助,将不胜感激.

javascript jquery

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

检查Linq-to-xml中是否存在结果

我正在使用Linq-to-XML来做一个简单的"这个用户注册"检查(这里没有安全性,只是为桌面应用程序制作注册用户列表).如何处理来自这样的查询的结果:

var people = from person in currentDoc.Descendants("Users")
                     where (string)person.Element("User") == searchBox.Text
                     select person;
Run Code Online (Sandbox Code Playgroud)

我理解使用结果的最常见方式是类似的

foreach (var line in people){
    //do something here
}
Run Code Online (Sandbox Code Playgroud)

但是person,如果这个人没有注册,你会怎么做?

我在这个网站和MSDN上环顾四周,还没有找到一个非常明确的答案.

额外信用:对people包含的内容给出一个很好的解释.

c# linq-to-xml

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

从xdmp访问HTTP响应:http-get()

使用MarkLogic从xdmp:http-get()或使用或从Web服务中提取数据xdmp:http-post(),我希望能够在尝试处理数据之前检查返回的标头.在DQ我可以这样做:

let $result := xdmp:http-get($query,$options) (: $query and $options are fine, I promise. :)
return $result
Run Code Online (Sandbox Code Playgroud)

我得到的结果看起来像这样:

<v:results v:warning="more than one node">
       <response>
           <code>200</code>
            <message>OK</message>
            <headers>
              <server>(actual server data was here)</server>
              <date>Thu, 07 Jun 2012 16:53:24 GMT</date>
              <content-type>application/xml;charset=UTF-8</content-type>
              <content-length>2296</content-length>
              <connection>close</connection>
            </headers>
        </response>
Run Code Online (Sandbox Code Playgroud)

然后是实际的回应.问题是我似乎无法将XPath放入此响应节点.如果我改变我的return语句,return $result/response/code我得到空序列.如果我可以检查该代码以确保在尝试处理返回的实际数据之前得到200,那么使用try-catch块来查看数据是否存在且是否合理要好得多.

所以,如果有人知道如何访问这些响应代码,我很乐意看到你的解决方案.

为了记录,我尝试过xdmp:get-response-code(),但它没有采取任何参数,所以我不知道它正在看什么响应代码.

xquery marklogic

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

Ruby(不是Rails)在使用find()时给出NoMethodError

我有几个脚本使用ActiveRecord与MySQL数据库交互而没有其余的Rails包(尽管我已经安装了完整的Rails gem).但是,当我尝试在ActiveRecord-descended类上调用find()时,最近尝试使用这些类已经给了我NoMethodError.
类代码非常基本:

class LineItem <ActiveRecord::Base
   set_primary_key 'id'
   set_table_name  "line_items"
end
Run Code Online (Sandbox Code Playgroud)

是的,因为我使用的是MySQL数据库,所以我有一个db连接器文件:

require 'rubygems'
require 'active_record'
require 'logger'
ActiveRecord::Base.establish_connection(
  :adapter =>'mysql',
  :database=>'my_db',
  :username=>'my_user',
  :password=>'a_password',
  :host=>"ip_address",
  :port=>3306
)
ActiveRecord::Base.logger = Logger.new(STDERR) 
Run Code Online (Sandbox Code Playgroud)

但是当我运行脚本时:

require "dbconn"
require "lineitem"

li = LineItem.new()
li.find(1)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

NoMethodError: undefined method `find' for #<LineItem id: nil, trans_id: nil, trans_code: nil, data: nil>
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/attribute_methods.rb:260:in `method_missing'
from (irb):4
Run Code Online (Sandbox Code Playgroud)

如果有人有任何建议我会很感激.我在OSX 10.6.1上使用Ruby 1.8.7是的,它在10.5.x上运行良好

ruby mysql activerecord osx-snow-leopard

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