我在一个名为 blah_blah_blah_blah_number 的 XML 文件中有一堆测试用例
测试用例的数字都搞砸了,例如:
blah_3
blah_1
blah_7
....
我需要重新编号。这样第一个被重新编号为 1,第二个被重新编号为 2.. 等等。我想为此构建一个宏,但我不知道如何开始。我需要某种搜索功能,可以转到我给它的模式,然后用我保存在某个变量中的计数替换数字。我对 Slick-C 一点也不精通,想尽快完成:\
任何帮助表示赞赏,
泰德
我在一个名为 blah_blah_blah_blah_number 的 XML 文件中有一堆测试用例
测试用例的数字都搞砸了,例如:
blah_3
blah_1
blah_7
....
我需要重新编号。这样第一个被重新编号为 1,第二个被重新编号为 2.. 等等。我想为此构建一个宏,但我不知道如何开始。我需要某种搜索功能,可以转到我给它的模式,然后用我保存在某个变量中的计数替换数字。我对 Slick-C 一点也不精通,想尽快完成:\
任何帮助表示赞赏,
泰德
要获得更及时的答案,您可以考虑 slickedit.com 上的 SlickEdit 论坛,但我会在这里尝试。
我会将文件加载到缓冲区中,并按照以下行创建一个宏:
search
with 正则表达式来查找下一个匹配项search_replace
将找到的字符串替换为使用计数器变量组成的新字符串,并重复上一次搜索无需在 XML 文件上进行测试,这应该可以让您开始使用您的功能(假设您知道如何创建宏文件并将其加载到 SE 中),快速测试表明它可以在纯文本文件上工作,不能保证,然而:
/* Demo for StackOverflow question 14205293 */
_command my_renumber() name_info(','VSARG2_MARK|VSARG2_REQUIRES_EDITORCTL)
{
int not_found = 0; /* boolean to terminate loop */
int iLoop = 0; /* Counter to renumber items */
/* Use search initially; if that call doen't find an item, we're done. */
if (search('blah_:i', 'R') != 0)
{
not_found = 1;
}
while (!not_found)
{
if (search_replace('blah_' :+ iLoop, 'R') == STRING_NOT_FOUND_RC)
{
not_found = 1;
}
iLoop++;
}
}