问题列表 - 第36676页

我怎样才能操作P​​erl字符串的一部分?

我正在尝试编写一些Perl来将一些基于HTML的文本转换为MediaWiki格式并遇到以下问题:我想在某些文本的分隔子区域内进行搜索和替换,并想知道是否有人知道这样做的简洁方法.我的输入流类似于:

Please mail <a href="mailto:help@myco.com&amp;Subject=Please help&amp;Body=Please can some one help me out here">support.</a> if you want some help.
Run Code Online (Sandbox Code Playgroud)

我想改变Please help,并Please can some one help me out herePlease%20helpPlease%20can%20some%20one%20help%20me%20out%20here分别,在不改变任何其他空间的就行了.

当然,我还需要能够在线上处理多个这样的链接,因此拼接不是一个很好的选择.

我已经对Perl教程网站(这不是我的第一语言)进行了很好的了解,但没有像这样的例子.任何人都可以建议一个优雅的方式吗?

regex perl mediawiki

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

带有存储库和ninject的ASP.NET MVC MembershipProvider

如何通过覆盖的MembershipProvider类与UserService进行通信?我不知道如何将连接字符串传递给服务中的用户存储库.

这就是我的应用程序的结构:

存储库(实现中的构造函数采用连接字符串)

public interface IUserRepository
{
    IQueryable<User> GetUsers();
    IQueryable<UserRole> GetUserRoles();
    void InsertUser(User user);
}
Run Code Online (Sandbox Code Playgroud)

服务(构造函数获取用户存储库)

public interface IUserService
{
    User GetUser(int userId);
    User GetUser(string email);
}
Run Code Online (Sandbox Code Playgroud)

UserController(我的控制器的一个例子)

public class UsersController : Controller
{
    private IUserService userService;
    public UsersController(IUserService userServ)
    {
        userService = userServ;
    }
}
Run Code Online (Sandbox Code Playgroud)

NinjectConfigurationModule

public class NinjectConfigurationModule : NinjectModule
{

    public override void Load()
    {
        Bind<IUserService>().To<UserService>();
        Bind<IUserRepository>().To<UserRepository>()
            .WithConstructorArgument("connectionString", ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString
            );
    }
}
Run Code Online (Sandbox Code Playgroud)

NinjectControllerFactory

public class NinjectControllerFactory : DefaultControllerFactory
{
    private IKernel kernel = new StandardKernel(new NinjectConfigurationModule());

    protected …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc ninject membership-provider

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

优化在同一个表上使用多个左连接的查询

我遇到了一个"太长"的查询.该查询在10个左右的表之间有50多个左连接.为了简要概述数据库模型,连接的表是存储特定数据类型数据的表(例如:date_fields,integer_fields,text_fields等),每个表都有一个值列,一个"datafield"id,和票证ID.查询是基于"票证"及其"数据字段"之间的关联表以编程方式构建的.

join语句如下所示:

...FROM tickets t
LEFT JOIN ticket_text_fields t001 ON(t.id=t001.ticket_id AND t001.textfield_id=7)
...
LEFT JOIN ticket_date_fields t056 ON(t.id=t056.ticket_id AND t056.datafield_id=434)
Run Code Online (Sandbox Code Playgroud)

在查询上使用说明时显示以下内容:

1   SIMPLE   t       ref   idx_dataset_id                   idx_dataset_id  5   const   2871   Using where; Using temporary; Using filesort
1   SIMPLE   t001   ref   idx_ticket_id,idx_datafield_id   idx_ticket_id   5   t.id   5   
... 
1   SIMPLE   t056   ref   idx_ticket_id,idx_datafield_id   idx_ticket_id   5   t.id   8
Run Code Online (Sandbox Code Playgroud)

我可以采取什么方向来调整此查询?所有索引似乎都已到位.也许应该减少t表(票)行号(2871).有多少左连接太多了?数据域表是否应仅连接一次,然后查询每个所需的数据?

sql optimization left-join sql-execution-plan

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

C#通过引用传递参数

我有下面的代码,它将字符串前缀到字符串数组的每个成员的开头.即.以"z"为前缀的["a","b","c"]变为["za","zb","zc"].

private string[] Prefix(string[] a, string b) {
   for(int i = 0;i < a.Length;i++) {
     a[i] = b + a[i];
   }
  return a;
}
Run Code Online (Sandbox Code Playgroud)

该功能工作正常(虽然如果有更好的方法来做到这一点,我很高兴听到它),但我在传递参数时遇到问题.

string[] s1 = new string[] {"a","b"};
string[] s2 = Prefix(s1,"z");
Run Code Online (Sandbox Code Playgroud)

现在据我所知,我正在通过值传递s1.但是,当前缀功能已经完成,S2和S1具有相同的值["ZA" ZB"],或S1已按引用传递.我确信你必须显式声明在C#这种行为,并且很迷茫.

c# parameter-passing

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

Ruby类类型和case语句

有什么区别

case item.class
when MyClass
  # do something here
when Array
  # do something different here
when String
  # do a third thing
end
Run Code Online (Sandbox Code Playgroud)

case item.class
when MyClass.class
  # do something here
when Array.class
  # do something different here
when String.class
  # do a third thing
end
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这些中的第一个有时会起作用而第二个起作用,而其他时候,第二个起作用,而第一个起作用.为什么?哪一个是"正确"的方式呢?

ruby duck-typing case-statement

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

如何覆盖UserControl类来绘制自定义边框?

我想覆盖System.Windows.Forms.UserControl来绘制自定义边框(例如使用自定义颜色).使用内置类是不可能的,因为可以影响边界行为的唯一方法/属性是BorderStyle.

以下面的方式覆盖OnPaint(下面的代码)并不是一个好的解决方案,因为它基本上是在原始的边框上绘制另一个边框.

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);

        if (this.BorderStyle == BorderStyle.FixedSingle)
            ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.LightGray, ButtonBorderStyle.Solid);
    }
Run Code Online (Sandbox Code Playgroud)

有谁知道如何在自定义控件中覆盖边框绘图?

出于某些原因,将此用户控件放入面板不是我的选择.

custom-controls winforms

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

如何修改Perl DateTime对象?

在我的脚本中,我需要像这样做一个循环:

use DateTime;
for $j(0..3){
    my ($date) = DateTime->now->ymd;
    my ($k) = 0;
    while($k <= $j){
        $date = ($date->subtract( days => 7));
        $k++;
    }
print "$date\n";
}
Run Code Online (Sandbox Code Playgroud)

哪个应该得到当前日期,然后一个星期前,等等.可悲的是,在得到正确的当前日期后,它不起作用,我不知道什么是错的.

Error message is "Can't call method "subtract" without a package or object reference [...]", 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何解决这个问题.

如果可能的话,我想继续使用DateTime或将其替换为另一个模块(可能不超过一个).

perl datetime date

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

在创建iOS应用程序(Xcode)时,如何关闭自动图标'gelling'

有没有办法摆脱在创建iPhone应用程序时自动添加到图标的突出显示,还是我必须在PS中手动补偿?

谢谢

iphone xcode icons ios

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

在做了一段时间的HttpWebRequests之后,结果开始超时

我有一个应用程序,蜘蛛网站的信息.似乎在创建HttpWebRequests 20-45分钟之后,他们中的一大堆返回超时.我们做的一件事就是附加一个BindIPDelegate匿名函数来为请求提供一个特定的IP,因为我们通过大约150个IP循环.

我正在HttpWebRequest使用以下设置设置对象..

  • 设置用户代理
  • 将Keep-Alive设置为false,以便不重复使用IP
  • 将TimeOut设置为60000(60秒)
  • 将ReadWriteTimeout设置为60000(60秒)
  • 将Proxy设置为null
  • 将Accept设置为/
  • 将CookieContainer设置为新的CookieContainer
  • 将Piplined设置为true
  • 将自动解压缩设置为Deflate和GZIP

该应用程序使用.NET 4.0并在Windows Server 2008 R2上运行.

这肯定看起来像应用程序/ TCP/.NET相关,因为如果我重新启动应用程序它再次运行正常.此外,它似乎或多或少像超时排队等待本地端口等等.

有任何想法吗?

.net c# networking web-crawler windows-server-2008

6
推荐指数
1
解决办法
2273
查看次数

620:使用 Google Maps API 的查询过多

我正在使用 Google Maps Javascript API V3 对页面上的许多位置 (~100) 进行反向地理编码。大约 10 个左右后,我开始收到 620 错​​误:查询太多。

鉴于它们是异步的,延迟请求并确保它们全部完成的好方法是什么?

编辑:这是我到目前为止所拥有的。大多数情况下它会完成所有请求,但不会重试失败的请求。

function replaceAddresses() {
    var delay = 0;
    $(".lat-lon-address").each(function(index) {
        window.setTimeout(queryGeocoder, delay, this);          
        delay += 1000;
    });
}

function queryGeocoder(elem) {
    geocoder.getLocations(new GLatLng(
        elem.getAttribute("lat"),
       elem.getAttribute("lon")), 
        function(response) {
            handleAddress(response, elem);
        }); 
}

function handleAddress(response, elem) {
    if (!response || response.Status.code != 200) {
        console.log("status code: " + response.Status.code)
    } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                        place.Point.coordinates[0]);

        elem.innerHTML = place.address;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript google-maps-api-3

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