小编sco*_*ttm的帖子

为什么我的Boost.Regex搜索只报告一次匹配迭代?

我试图找出字符串中有多少正则表达式匹配.我正在使用迭代器迭代匹配,并使用整数来记录有多少.

long int before = GetTickCount();
string text;

boost::regex re("^(\\d{5})\\s(\\d{8})\\s(.*)\\s(.*)\\s(.*)\\s(\\d{8})\\s(.{1})$");
char * buffer;
long length;
long count;
ifstream f;


f.open("c:\\temp\\test.txt", ios::in | ios::ate);
length = f.tellg();
f.seekg(0, ios::beg);

buffer = new char[length];

f.read(buffer, length);
f.close();

text = buffer;
boost::sregex_token_iterator itr(text.begin(), text.end(), re, 0);
boost::sregex_token_iterator end;

count = 0;
for(; itr != end; ++itr)
{
    count++;
}

long int after = GetTickCount();
cout << "Found " << count << " matches in " << (after-before) << " ms." << endl;
Run Code Online (Sandbox Code Playgroud)

在我的例子中,count总是返回1,即使我把代码放在for循环中以显示匹配(并且有很多).这是为什么?我究竟做错了什么? …

c++ regex iterator greedy boost-regex

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

有没有办法在try/catch块中一般地包装任何函数调用?

我正在为一个项目编写一堆集成测试.我想调用包含在try/catch块中的每个单独的集成点方法,这样当它失败时,我会得到某种反馈来显示,而不是仅仅崩溃应用程序.我还希望能够计算调用的时间,并在需要时检查返回值.所以,我有一个IntegrationResult类,其中包含一些基本描述,结果和时间已过去的属性:

class IntegrationResult
{
  private StopWatch _watch;

  public string Description {get;set;}

  public string ResultMessage {get;set;}

  public bool TestPassed {get;set;}

  public string TimeElapsed {get { return _watch == null ? "0" : _watch.Elapsed.TotalMilliseconds.ToString(); } }

  public void Start()
  {
    _watch = StopWatch.StartNew();
  }  

  public void Stop()
  {
    _watch.Stop();
  }
}
Run Code Online (Sandbox Code Playgroud)

我写的代码看起来像这样:

IntegrationResult result = new IntegrationResult();
result.Description = "T-SQL returns expected results";

    try
    {
      result.Start();
      SomeIntegrationPoint("potential arguments"); //This is the line being tested
      result.Stop();

      //do some check that correct data is …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing exception-handling

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

如何将图像向下移动几个像素?

http://jsfiddle.net/sWceL/

我试图在一个按钮旁边水平居中加载器gif.我能弄清楚如何做到这一点的唯一方法是浮动gif并将其全部移动.有没有更好的办法?

在我的例子中,左边的加载器是我想要的,如果可能的话没有浮动.

css css-float

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

在C中规划和组织应用程序开发的最佳方法是什么?

我只需要在C中编码几次,而且每次我都这样做,它就变成了一些无法管理的野兽.

我已经在C#和.Net中完成了大部分的编程,因此我非常习惯于类风格的体系结构,但我似乎无法掌握C语言应用程序中的组织.我应该把函数定义放在一个文件中,将函数定义放在一个文件中,然后在另一个文件中处理,等等.这个主题有没有什么好的资源?

另请参阅:从面向对象的土地中挣扎?

c

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

为什么FTPWebRequest或WebRequest一般都不接受/../路径?

我试图从ftp Web服务器自动执行一些上传/下载任务.当我通过客户端或通过Firefox连接到服务器时,为了进入我的目录,我必须指定这样的路径:

ftp://ftpserver.com/../AB00000/incoming/files
Run Code Online (Sandbox Code Playgroud)

如果我尝试访问此内容:

ftp://ftpserver.com/AB00000/incoming/files
Run Code Online (Sandbox Code Playgroud)

服务器抛出该目录不存在的错误.那么,问题是:

我试图用第一个ftp地址创建一个FTPWebRequest,但它总是解析"/../"部分,然后我的服务器说路径不存在.

我试过这些:

    Uri target = new Uri("ftp://ftpserver.com/../AB00000/incoming/files");
FtpWebRequest request = (FtpWebRequest)WebReqeuest.Create(target);
Run Code Online (Sandbox Code Playgroud)

string target = "ftp://ftpserver.com/../AB00000/incoming/files";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
Run Code Online (Sandbox Code Playgroud)

在第一位,当实例化Uri对象时,路径已经不正确,在第二位,它在WebRequest.Create方法之后.有什么想法发生了什么?

编辑:

另外,由于我发布了这个,我尝试使用no parse选项创建URI.我也尝试过这样的事情:

string ftpserver = "ftp://ftpserver.com/../";
string path = "12345/01/01/file.toupload";

Uri = new Uri(ftpserver, path, true);
Run Code Online (Sandbox Code Playgroud)

它总是解析根部分("/../").

c# ftpwebrequest

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

如何判断我的脚本是从cronjob还是从命令行运行?

我有一个脚本,它通过写入同一个控制台行显示show的上传进度.当脚本从一个cron作业运行,而不是写一行时,我会得到很多行:

***   E0710091001.DAT  ***   [0.67%]
***   E0710091001.DAT  ***   [1.33%]
***   E0710091001.DAT  ***   [2.00%]
***   E0710091001.DAT  ***   [2.66%]
***   E0710091001.DAT  ***   [3.33%]
***   E0710091001.DAT  ***   [3.99%]
***   E0710091001.DAT  ***   [4.66%]
***   E0710091001.DAT  ***   [5.32%]
***   E0710091001.DAT  ***   [5.99%]
***   E0710091001.DAT  ***   [6.65%]
***   E0710091001.DAT  ***   [7.32%]
***   E0710091001.DAT  ***   [7.98%]
***   E0710091001.DAT  ***   [8.65%]
***   E0710091001.DAT  ***   [9.32%]
***   E0710091001.DAT  ***   [9.98%]
***   E0710091001.DAT  ***   [10.65%]
***   E0710091001.DAT  ***   [11.31%]
***   E0710091001.DAT  ***   [11.98%]
***   E0710091001.DAT  ***   [12.64%]
***   E0710091001.DAT  *** …
Run Code Online (Sandbox Code Playgroud)

python cron

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

何时处理异常?

我正在编写一个应用程序,我可以通过多个步骤提供任务.我有一些类似于下面的代码,我想知道这是否是处理异常的常规方法.这个代码可能永远不会被其他任何人看到,但它可能是,所以我想知道我正在按照任何人的预期处理异常.

IEnumerable<Task> Tasks;

foreach(var task in Tasks)
{
 try
 {
   //boiler plate prep for task (loading libraries, connecting, logging start, etc)

   foreach(var step in task.Steps)
   {  
      try
      {
        step.Execute();
      }
      catch(Exception ex)
      {
        LogStepError(step, ex);
        throw;
      }
    }

    //Notify parties task has been completed successfully, log task completion
  }
  catch(Exception ex)
  {
      LogTaskFailure(task);
  }
  finally
  {
    //close connections, etc
  }
}



interface ITaskStep
{
    void Execute()
    {

    }            
}
Run Code Online (Sandbox Code Playgroud)

我还想补充一点,任务步骤正在实现ITaskStep接口,因此Execute的实现不是我自己的(在这个例子中,有人可以实现接口).我的代码只是加载库并运行任何ITasks及其ITaskSteps.

c# exception-handling

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

为什么我的HttpApplication实例变量为null?

我有一个MVC3应用程序,我已经添加了几个简单的缓存变量作为属性.我添加了我的数据,Application_Start然后在控制器中尝试将其转换HttpContext.ApplicationInstance回我的类型以访问它.但是,该属性始终为null.这是一个例子:

编辑工作实例

public interface IMyMvcApp
{
    Hashtable Cache {get;set;}
}


public class MvcApplication: HttpApplication, IMyMvcApp
{

    public Hashtable Cache 
    {
        get { return Context.Cache["MyStuff"] as Hashtable; }
        set { Context.Cache["MyStuff"] = value}
    }

    public void Application_Start()
    {
        Cache = new Hashtable();
        Cache.Add("key", new object());
    }
}

public class AController : Controller
{
    protected override void OnActionExecuting(ActionExecutingContext context)
    {
        var myApp = context.HttpContext.ApplicationInstance as IMyMvcApp;

        Assert.IsNotNull(myApp.Cache);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# httpcontext asp.net-mvc-3

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

在yeoman angular应用程序中使用bower时,我可以更改呈现的路径吗?

我在我的角应用程序中使用html5mode,但是当我运行bower installgrunt,它将路径呈现为

<script src="bower_components/...

我可以改成这个吗?

<script src="/bower_components/...

我已经<base href="/">在我的<head/>部分添加了一个标签,但是当我的页面尝试加载javascript时,他们仍然在寻找相对的网址.

因此对于/bower_components/script.js目前呈现 为的脚本<script src="bower_components/script.js"></script>,

启用时/login,页面会尝试加载/login/bower_components/script.js

编辑 按照@ sharpper的建议,我在下面添加了代码块,最后在Gruntfile.js中使用了这个:

// Automatically inject Bower components into the app
'bower-install': {
  app: {
    html: '<%= yeoman.app %>/index.html',
    ignorePath: '<%= yeoman.app %>/',
    fileTypes: {
      html: {
        block: /(([\s\t]*)<!--\s*bower:*(\S*)\s*-->)(\n|\r|.)*?(<!--\s*endbower\s*-->)/gi,
        detect: {
          js: /<script.*src=['"](.+)['"]>/gi,
          css: /<link.*href=['"](.+)['"]/gi
        },
        replace: {
          js: '<script src="/{{filePath}}"></script>', // <-- Change this line
          css: '<link rel="/stylesheet" href="{{filePath}}" />' …
Run Code Online (Sandbox Code Playgroud)

angularjs gruntjs bower yeoman-generator

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

从multilpe表和数据库查询数据的最佳方法是什么?

我有5个数据库,代表该国的不同地区.在每个数据库中,有几百个表,每个表有10,000-2,000,000个事务记录.每个表都是相应区域中客户的表示.这些表中的每一个都具有相同的模式.

我想查询所有表,就像它们是一个表一样.我能想到的唯一方法是创建一个联合所有表的视图,然后只针对它运行我的查询.但是,客户表将一直在变化(因为我们获得和失去客户),因此我必须更改我的视图的查询以包括新表(或删除不再使用的表).

有没有更好的办法?

编辑

在回应评论时,(我也将此作为对答案的回复):

在大多数情况下,我不会删除任何表格,它们将保留用于历史目的.正如我在一篇回复中发表评论时,其想法是减少较小客户(一个只有10,000条记录)的时间来查询自己的历史记录.大约有1000个客户平均有1,000,000行(并且正在增长).如果我要将所有记录添加到一个表中,那么该表中将有近十亿条记录.我还以为我正在计划未来,因为当我们说5000个客户时,我们没有一个巨大的表来保存所有交易记录(这可能是我的想法中的错误).那么,最好不要像我一样划分记录吗?我应该将它们全部混合到一张桌子里吗?对客户ID进行索引是否可以防止向小客户查询数据的延迟?

sql sql-server sql-server-2000

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