问题列表 - 第8398页

VBScript RegExp不够贪婪

我正在尝试编写一个简单的SQL解析器来将sql语句分解为其基本部分.但是,我遇到嵌套查询的问题.一个例子说明最好的:

sql = "select * from Customers where id in (select customer_id from Orders where 1=1)"
Set re = New RegExp
re.IgnoreCase = True
re.Pattern = "^(.*)\swhere\s(.*)$"
re.Global = True
Set matches = re.Execute( sql )


If matches.count > 0 Then
    Set submatches = matches(0).Submatches
    where_part = Trim(submatches(1))
    everything_else = Trim(submatches(0)) 
End If 

Response.Write where_part & "<br>"
Response.Write everything_else & "<br>"
Run Code Online (Sandbox Code Playgroud)

在这里,我希望where_part包含"id in(从订单中选择customer_id,其中1 = 1)"和everything_else包含"select*from Customers".也就是说,我希望它尽可能地贪婪,第二个(.*)和第一个无私.换句话说,我希望everything_else不包含任何地方.

但是,我得到everything_else ="select*from customer in id in(select order_id from Orders"and where_part ="1 = 1)"

如何在不诉诸凌乱的非regexp字符串解析的情况下解决这个问题?

regex vbscript parsing regex-greedy

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

使用Xcode在Mac上构建Boost

我最近熟悉了Boost库,我想在我的Xcode项目中使用它.但遗憾的是,没有关于如何做到的HowTo或FAQ :(

在Xcode中构建和使用Boost库的操作顺序是什么?

c++ macos xcode boost build

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

从表单转移到用户控制

我有一堆表格,我嵌入在tabpages(有些嵌入了两层和三层深),我现在怀疑是给我带来麻烦.我被告知用户控制是更好的方法.

  • 现在我想知道如何尽可能快地完成这项工作.

  • 它复制和粘贴一样简单吗?

  • 有没有人做过这样的事情?

我有大约40种我需要移动的表格,而不是很多时间去做,所以任何帮助都非常感谢.

编辑1

这就是我嵌入表单的方式:

        public static void ShowFormInContainerControl(Control ctl, Form frm)
    {
        frm.TopLevel = false;
        frm.FormBorderStyle = FormBorderStyle.None;
        frm.Dock = DockStyle.Fill;
        frm.Visible = true;
        ctl.Controls.Add(frm);
    }

        public static void DockControl(this Control control, UserControl userControl)
    {
        userControl.Dock = DockStyle.Fill;
        control.Controls.Clear();
        control.Controls.Add(userControl);
    }
Run Code Online (Sandbox Code Playgroud)

refactoring user-controls winforms

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

如何将条件链转换为更快,更简单的代码?

我有9种不同的语法.其中一个将被加载,具体取决于它正在解析的文件的第一行txt.

我正在考虑将词法分析器/解析器派生到sep中.类,然后在我得到匹配时立即实例化它们 - 不确定这是否会减慢我的速度但不会.我想一些基准测试是有序的.

真的,速度绝对是我的目标,但我知道这是丑陋的代码.

现在代码看起来像这样:

sin.mark(0)
site = findsite(txt)
sin.reset()

if ( site == "site1") {
   loadlexer1;
   loadparser1;
} else if (site == "site2") {
   loadlexer2;
   loadparser2;
}
.................
} else if (site == "site8") {
   loadparser8;
   loadparser8;
}

findsite(txt) {
  ...................
  if line.indexOf("site1-identifier") {
    site = site1;
  } else if(line.indexOf("site2-identifier") {
    site = site2;
  } else if(line.indexOf("site3-identifier") {
    site = site3;
  }
  .........................
  } else if(line.indexOf("site8-identifier") {
    site = site8;
  }
}
Run Code Online (Sandbox Code Playgroud)

一些澄清

1)是的,我真的有9个不同的语法,我用antlr构建,所以他们将拥有自己的词法分析器/解析器objs.

2)是的,截至目前我们正在比较字符串,并且显然将用某种整数映射替换.我也考虑过将网站标识符粘贴到一个正则表达式中,但是我不认为这会加快任何速度.

3)是的,这是伪代码所以我不会对这里的语义过于挑剔.. …

java performance parsing dictionary antlr

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

MySQL:动态确定表的主键

我在PHP中生成这样的SQL查询:

$sql = sprintf("UPDATE %s SET %s = %s WHERE %s = %s", ...);
Run Code Online (Sandbox Code Playgroud)

由于此查询的几乎每个部分都是动态的,我需要一种方法来动态确定表的主键,这样我就有了这样的查询:

$sql = sprintf("UPDATE %s SET %s=%s WHERE PRIMARY_KEY = %s", ...);
Run Code Online (Sandbox Code Playgroud)

表的主键是否有MySQL关键字,或者是获取它的方法?

我之前使用过information_schema数据库来查找这样的信息,但如果我不必诉诸于此,那就太好了.

php mysql sql primary-key

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

在C#中优化XML

背景

我们有一个在.NET 1.1中启动的项目,转移到.NET 2.0,最近再次移动到.NET 3.5.该项目极其数据驱动,并为其许多数据文件使用XML.其中一些XML文件非常庞大,我想借此机会改进应用程序与它们的交互.如果可能的话,我想避免在任何时候都将它们完全保存在内存中,但另一方面,我想快速访问它们的数据.

当前设置使用XmlDocumentXPathDocument(取决于它何时写入和由谁编写).首次请求并在内部数据结构中缓存数据(而不是XML,在大多数情况下会占用更多内存).在过去,这是一个很好的模型,因为它具有快速访问时间和低内存占用(或至少,令人满意的内存占用).然而,现在有一个功能可以一次性查询大部分信息,而不是我们之前拥有的很好分散的请求.这会导致XML加载,验证和解析成为性能的可见瓶颈.

给定一个大型XML文件,在没有内存中的XML的情况下,重复查询其内容(例如,"具有id = B的元素A是否存在?")的最有效和响应方式是什么?

请注意,如果我们可以提供帮助,数据本身可以在内存中,而不是在更臃肿的XML格式中.在最坏的情况下,我们可以接受加载到内存中的单个文件进行解析,然后再次卸载以释放资源,但我想尽可能避免这种情况.

考虑到我们已经在尽可能地缓存数据,这个问题也可以被解读为"哪个更快并且使用更少的内存; XmlDocument,XPathDocument基于XmlReaderXDocument/ LINQ-to-XML进行解析?"

编辑:更简单,我们可以随机访问磁盘上的XML而无需一次读取整个文件吗?

XML文件有一些记录:

<MyXml>
  <Record id='1'/>
  <Record id='2'/>
  <Record id='3'/>
</MyXml>
Run Code Online (Sandbox Code Playgroud)

我们的用户界面想知道是否存在id为3的记录.如果可以的话,我们想要找出而不必解析并加载文件中的每条记录.因此,如果它在我们的缓存中,则没有XML交互,如果不是,我们可以将该记录加载到缓存中并响应请求.

目标

使用可扩展,快速的方式查询和缓存XML数据文件,以便我们的用户界面能够响应,而无需借助多个线程或将整个XML文件长期保留在内存中.

我认识到,有可能是在这个地方博客或MSDN文章,我会继续我谷歌已经发布了这个问题后,但如果任何人有一些数据,也许会有帮助,或者一种方法是好还是一些例子比另一个更快,那将是伟大的.


更新
XMLTeam今天发布了一个博客,提供了关于何时在.NET中使用各种XML API的很好的建议.它看起来像是基于的东西,XmlReader并且IEnumerable是我在这里给出的场景的最佳选择.

c# xml linq-to-xml .net-3.5

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

如何在Windows上运行Perl脚本时才能包含Win32模块?

我有一个问题,我似乎无法找到答案.

使用Perl我需要在Windows和unix平台上使用脚本.问题是在Windows上我们使用Win32特有的模块,如Win32 :: Process,并且这些模块在unix上不存在.

我需要一种方法只在Windows上包含这些Win32模块.

if($^O =~ /win/i)
{
    use win32::process qw(CREATE_NEW_CONSOLE);
}
else
{
    #unix fork
}
Run Code Online (Sandbox Code Playgroud)

问题在于使用windows语句.无论我尝试什么,这都不能在unix上编译.

我尝试过使用动态evals,要求,BEGIN等.

这个问题有一个很好的解决方案吗?任何帮助将不胜感激.

提前致谢,


更新:

一位同事向我指出这是正确的方法.

require Win32;
require Win32::Process;

my $flag = Win32::Process::CREATE_NEW_CONSOLE();

Win32::Process::Create($process, 
    $program, 
    $cmd, 
    0, 
    $flag, ".") || die ErrorReport();

print "Child started, pid = " . getPID() . "\n";
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助!

windows perl cross-platform

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

首先应该是什么 - 设计模式还是代码?

我正在开始一个全新的项目 - 我应该查看我的规范并决定应用哪些设计模式,或者只是想出一个组织的概念并允许模式通过重构有机地出现?

根据您的经验,哪种技术最有效率,并且更有可能实现干净优雅的代码?

我也想知道是否有没有GoF定义的设计模式,但可能同样有价值?如果是这样,有什么有用的资源可以告诉自己这些?

architecture refactoring design-patterns

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

我应该在源代码管理中存储生成的代码

这是我正在参与的辩论.我想得到更多的意见和观点.

我们有一些在构建时生成的类来处理数据库操作(在这个特定情况下,使用SubSonic,但我不认为这对于这个问题非常重要).生成设置为Visual Studio中的预构建步骤.因此,每次开发人员(或官方构建过程)运行构建时,都会生成这些类,然后将其编译到项目中.

现在有些人声称,在源代码控制中保存这些类可能会导致混淆,以防您获得的代码与您自己的环境中生成的代码不匹配.

我想有办法追溯代码的历史,即使它通常被视为黑盒子.

任何论据或反驳论点?


更新:我问过这个问题,因为我真的相信有一个明确的答案.看看所有回复,我可以高度肯定地说,没有这样的答案.应根据多个参数做出决定.阅读下面的答案可以为您在决定此问题时应该问自己的问题类型提供非常好的指导.

由于上述原因,此时我不会选择接受的答案.

version-control code-generation

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

生产Erlang部署的示例

我正在学习Erlang

SO用户可以提供任何Erlang应用程序部署的有趣示例吗?

我希望深入了解Er​​lang使用过去的电信,以及Erlang在开发/部署过程中带来的任何问题或意外好处.

我希望这会给一些更广泛的背景,并为我和其他任何人跳进Erlang的哨声!

提前致谢!

erlang development-environment scalability production-environment

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