【发布时间】:2016-06-21 21:53:32
【问题描述】:
如果我尝试在文本文件中创建一列并使用在文本文件的特定区域中找到的相同值填充该列,我可以使用正则表达式进行查找/替换以成功执行此操作。由于该列是最正确的,我找到\r 并替换为,VALUE,\r,其中VALUE 是从以前的副本(CTRL-C)命令粘贴的.问题是我不能让它在其他文件上作为宏工作,因为它记录了 CTRL-V 的值而不是击键命令 CTRL-V。宏有没有办法模拟 CTRL-V 而不是填充特定值?
添加信息: 文件中的每一行都需要粘贴的值。原因是因为每一行都包含一个产品编号和一个数量。通过能够粘贴在其中一个标题中找到的值,我可以将这些行链接到由粘贴的值表示的顺序。因此,一个表将包含订单号、日期等,而另一个表将包含订单的详细信息,即项目。
这是一个示例文件:
商品名称、商品编号、数量 STORE #578 PO 0076875422 04-01-2014,已发货
蓝鱼,98799,3
红鱼,48573,10
黄色蜗牛,94582,2
绿蜥蜴-中号,32451,12
黑狼蛛,29879,909
在 notepad++ 中运行脚本后,该文件将如下所示:
商品名称、商品编号、数量 STORE #578 PO 0076875422 04-01-2014、已发货、订单号
蓝鱼,98799,3,,0076875422
红鱼,48573,10,,0076875422
黄色蜗牛,94582,2,,0076875422
绿蜥蜴-中号,32451,12,,0076875422
黑狼蛛,29879,909,,0076875422
包含 QTY 的标题包含其他数据:商店数量、订单数量和订单日期。订单号始终以“PO”开头,并且始终为 10 位数字。宏需要能够在每个文件中找到它,然后将其添加到每一行的末尾,但它需要在前面加上逗号以允许 SHIPPED 列中的空值。当然,您还会注意到标题行中添加了一个名为 ORDER_NUMBER 的标题。
我遇到困难的地方是能够将订单号的值粘贴到当前宏中每行 b/c 的末尾,它只能粘贴录制时粘贴的值,而不是当前正在处理的文件中的实际采购订单编号。所以我想如果我可以在告诉宏在标题行中找到采购订单号并将其复制到剪贴板之后以某种方式记录 CTRL-V 击键,那么它就可以工作了。
【问题讨论】:
-
复制和粘贴快捷方式在查找/替换对话框之外在宏中工作得很好。然而,它们似乎在对话框中不起作用——这可能是由于与给出的其他命令相比,对话框是如何记录的,但很难确定。我在Notepad++ Wiki 中找到了这一行,这就是我产生这个想法的原因:“Notepad++ 处理查找和替换记录自身的动作,因为它们会带来同样的困难。” 我目前正在寻找想办法做到这一点,但这可能是不可能的。
-
嗨,肯德拉。如果您发现任何东西,很高兴收到回复。有人告诉我,python 脚本可以完成我想要完成的工作,但是 Notepadd ++ 无法像我希望的那样存储击键。
-
我还没有找到自己做的方法。我曾希望插件可能会有所帮助,但我尝试过的都没有。我认为您最好的选择是使用脚本。也许未来的更新会做到这一点,但看起来这目前还不太可能。 (我还研究过手动编辑已保存的宏,但我认为我的系统出了点问题,导致它无法正确保存。如果我 确实 设法做到这一点并让它工作,我'将发布有关如何操作的答案。)
-
@chano 我想我可以提供一个可以帮助你的 nppexec 脚本。您会考虑使用 nppexec(通过插件管理器提供的 notepad++ 插件,您可以为 nppexec 脚本分配键盘快捷键)?如果是,请添加更多信息,例如您想将
,VALUE附加到文件中的每一行还是仅附加到某个子集(例如带有VALUE的行)?最好将一些示例输入行添加到所需的输出行中。 -
谢谢,Lars,是的,肯定会使用 nppexec 脚本。我会在帖子中添加一些信息。