小编Jen*_*rat的帖子

pyparsing问题

现在我刚刚开始使用pyparsing解析简单的后缀表达式.目前,我得到了这个:

from pyparsing import *
integer = Word(nums)
op = Word("+-*/^", max=1)
space = Word(" ")
expr = Word(nums)+space+Word(nums)+space+op
parsed = expr.parseString("3 4 *")
print parsed
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它会打印:

Traceback (most recent call last):
  File "star_parse.py", line 6, in <module>
    parsed = expr.parseString("3 4 *")
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyparsing-1.5.5-py2.6.egg/pyparsing.py", line 1100, in parseString
    raise exc
pyparsing.ParseException: Expected W:( ) (at char 2), (line:1, col:3)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python parsing expression pyparsing postfix-operator

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

使用Gpg4win命令行使用公钥批量加密

我们正在建立我们的第一个EDI系统,该系统依赖于使用OpenPGP进行的传入和传出文件加密。使用我们的公钥加密的传入文件,我们可以使用Gpg4win的命令行选项使用私钥成功解密:

gpg --batch --passphrase "SOME_KEY" --decrypt-files "%decryptingdir%\*.pgp"
Run Code Online (Sandbox Code Playgroud)

现在,我需要做的是反向操作,并使用我们的合作伙伴公钥对传出文件进行加密。

我一直找不到使用公钥进行批处理加密的任何命令行文档。我以为是这样的:

gpg --batch --encrypt-files "%encryptingfir%\*.pgp" --key "SOME_KEY_PATH"
Run Code Online (Sandbox Code Playgroud)

谁能建议我如何通过命令行实现这种加密?

windows encryption gnupg batch-file openpgp

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

为什么Perl不允许我从后缀比较中链接后缀循环?

还行吧:

$foo++ if $condition;
Run Code Online (Sandbox Code Playgroud)

这没关系:

$foo++ for (1..10);
Run Code Online (Sandbox Code Playgroud)

但这不是:

$foo++ if $condition for (1..10);
Run Code Online (Sandbox Code Playgroud)

如果事情并不复杂,我发现后者非常易读,而且它适用于一行!有没有办法做到这一点,还是我应该继续我的生活?

syntax perl postfix-operator

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

XmlDocument.SelectSingleNode为根节点返回null

我有几个XML文件,其后缀不是.XML,但.component现在我想要处理他们在C#程序,但它似乎C#中甚至不能找到这些XML文件的根元素

var doc = new XmlDocument();
doc.Load(path); // MG: edited to Load based on comment
XmlNode root = doc.SelectSingleNode("rootNodename");
Run Code Online (Sandbox Code Playgroud)

似乎根是空的,我该如何应对呢?

c# xml file-extension

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

找到字符串的结尾:*s ++ VS*s然后是s ++

我正在编写一个简单的字符串连接程序.

该程序按我发布的方式工作.但是,我首先使用以下代码编写它来查找字符串的结尾:

while (*s++)
    ;
Run Code Online (Sandbox Code Playgroud)

但是,该方法不起作用.传递给它的字符串未正确复制.具体来说,我试图将"abc"复制到一个持有"\ 0"的char []变量.

从阅读C K&R书籍看起来应该可行.紧凑的表格应采取以下步骤.

  1. *s与'\ 0'进行比较
  2. s指向下一个地址

那为什么不起作用呢?我在Debian上用gcc编译.

我发现这个版本确实有效:

strncat(char *s, const char *t, int n)
{
    char *s_start = s;

    while (*s)
        s++;

    for ( ; n > 0 && *t; n--, s++, t++)
        *s = *t;

    *(s++) = '\0';

    return s_start;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c pointers postfix-operator

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

使用XQuery求和

我正在使用XQuery来执行添加.以下是保存在数据库中的XML结构:

    <Events>
        <Event>
            <id>1</id>
            <code>1001</code>
            <Amount>50,1</Amount>
        </Event>
        <Event>
            <id>1</id>
            <code>1002</code>
            <Amount>5,5</Amount>
        </Event>
             <Event>
            <id>1</id>
            <code>1001</code>
            <Amount>50,1</Amount>
        </Event>
        <Event>
            <id>1</id>
            <code>1002</code>
            <Amount>5,5</Amount>
        </Event>
    </Events>
Run Code Online (Sandbox Code Playgroud)

我想通过使用XQuery获得低于输出:具有相同代码的金额之和.请注意,..我需要更换,.和执行运算.

 <Total>               
            <1001> 100,2 </1001>
            <1002> 11,0 </1002>
   </Total>
Run Code Online (Sandbox Code Playgroud)

xquery xquery-sql

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

在delphi中添加新的word文档

我正在建立一个delphi表单,在MS Word中添加一个新的word文档,等待用户插入文本和编辑文档,保存文件并退出MS Word,然后获取文件名和文件路径.

 WordApp := CreateOleObject('Word.Application');
 WordApp.Visible := True;
 Doc := WordApp.Documents.add();
Run Code Online (Sandbox Code Playgroud)

等待用户插入文本并编辑文档并保存文件并退出表格MS Word THEN

Doc.Save;
DocName := Doc.Name;
Docpath := IncludeTrailingPathDelimiter(Doc.path) + DocName;

with ZipForge1 do
begin
  FileName := Zipfilename;
  OpenArchive;
  Options.StorePath := spNoPath;
  AddFiles(Docpath);
  CloseArchive;
end;
Run Code Online (Sandbox Code Playgroud)

delphi ms-word delphi-xe

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

XPath和/或语法,编写此Xpath的任何更短的方法

我正在过滤一个大文件,其中包含适合儿童,男人和女人的各种鞋子.

现在我想过滤掉某些类型的女鞋,下面的xpath有效,但是我正在使用的程序存在xpath长度限制.所以我想知道是否有更短/更有效的方法来构建这个xpath

/Products/Product[contains(CategoryPath/ProductCategoryPath,'Halbschuhe') and contains(CategoryPath/ProductCategoryPath,'Damen') or  contains(CategoryPath/ProductCategoryPath,'Sneaker') and contains(CategoryPath/ProductCategoryPath,'Damen') or contains(CategoryPath/ProductCategoryPath,'Ballerinas') and contains(CategoryPath/ProductCategoryPath,'Damen')]
Run Code Online (Sandbox Code Playgroud)

编辑:添加了请求的文件样本

<Products>
    <!-- snip -->
    <Product ProgramID="4875" ArticleNumber="GO1-f05-0001-12">
        <CategoryPath>
            <ProductCategoryID>34857489</ProductCategoryID>
            <ProductCategoryPath>Damen &gt; Sale &gt; Schuhe &gt; Sneaker &gt; Sneaker Low</ProductCategoryPath>
            <AffilinetProductCategoryPath>Kleidung &amp; Accessoires?</AffilinetProductCategoryPath>
        </CategoryPath>
        <Price>
            <DisplayPrice>40.95 EUR</DisplayPrice>
            <Price>40.95</Price>
        </Price>
    </Product>
    <!-- snip -->
</Products>
Run Code Online (Sandbox Code Playgroud)

xpath operators

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

使用最少数量的括号将后缀修复为Infix

我正在寻找中缀符号的算法后缀,它将产生最小数量的括号.

我发现它会产生很多很多括号:http://tajendrasengar.blogspot.com/2011/09/postfix-to-infix-algorithm.html

例如

输入:

<ONP>abcd*/+~
Run Code Online (Sandbox Code Playgroud)

结果:

<INF>~(a+b/(c*d))
Run Code Online (Sandbox Code Playgroud)

java infix-notation postfix-notation

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

在命令行上使用 GnuPG 加密文件永远挂起

我想用 GnuPG 加密一个文件

    gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file
Run Code Online (Sandbox Code Playgroud)

然而,这个命令似乎永远挂起并且永远不会返回。有趣的是,在我中断进程后,确实/path/to/output_file创建了 ,但是写入那里的字节比原始有效负载大得多(例如,我/path/to/file只有 5 个字节,但结果写入了近 200 个字节/path/to/output_file)。

一定有什么问题,但我真的想不通是什么。

我已经提前导入了BlahBlahby的密钥gpg --import key.asc。GnuPG 1 和 GnuPG 2 都会发生这种情况。

encryption gnupg pgp openpgp

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