Beyond Compare:通过宏替换不同的前 6 位数字
BeyondCompare: Replace first 6 digits if different via macro
我们正在使用 BeyondCompare 4 来比较两个文件。有没有一种使用 BeyondCompare 的方法,通过按下按钮,只有前 6 位数字从文件 A 复制到文件 B?
我不想复制整行,如果我们真的想替换第一位数字,我们需要检查和审查。所以我们不能通过宏使用任何自动替换。
例如:
FileA:
(ABCD) This is a testline
(----) This is the 2nd line
FileB:
(0000) This is not a testline
(ABCD) This is the second line
经过审核,新文件应该是FileB,FileA第一行的第一个数字:
Result:
(ABCD) This is not a testline
(ABCD) This is the second line
提前致谢,
我找到了一个棘手的解决方案。
首先您需要一种新的文件格式,定义为 table 格式。
- 工具 -> 文件格式
- 按+和selecttable格式
- 定义掩码(在我的例子中是 *.yyy)
- 设置定界类型并定义分隔第一个字符的字符:
在此之后,您可以比较两个文件(在我的例子中,扩展名为 yyy):
要获得正确的对齐方式,您必须将第一列设为标准列(无键列):
现在您可以转到“文本详细信息”区域(如果没有,请使用“查看”->“文本详细信息”使其可见)。
在这里您可以转到一列并将其复制到右侧:
现在您只复制了文件的一部分。
备注:
我也尝试了修复的类型。第一列的 with 必须与您需要的第一个数字一样大。然后制作一个大的第二列以获取所有其他数据:
这导致以下比较:
但是通过这种比较,我无法复制单个列(@Scooter-Team:也许这是一个错误?)
在 Beyond Compare 的文本比较中复制一行的一部分的唯一方法是使用复制和粘贴。复制命令将始终复制整行。
克努特使用 Table 比较的方法是唯一的解决方法。
非常感谢您的详细描述。我按照 Knut 的建议进行了尝试,它起作用了,但我需要做一个小的调整,因为在我使用的文件中有更大的行,而 BeyondCompare 无法始终正确识别这些行。
对我有用的是将“)”设置为分隔符。然后我可以找到前 6 位数字,其余的将作为文本处理以进行比较。
固定类型的比较也不适合我。找到了每个不同的行,但是当我 select 行详细信息中的单元格时,它只用前 6 位数字替换了行。如果我只能替换第一位数字而不是用第一位数字替换整行,这种方法将是理想的。
我们正在使用 BeyondCompare 4 来比较两个文件。有没有一种使用 BeyondCompare 的方法,通过按下按钮,只有前 6 位数字从文件 A 复制到文件 B?
我不想复制整行,如果我们真的想替换第一位数字,我们需要检查和审查。所以我们不能通过宏使用任何自动替换。
例如:
FileA:
(ABCD) This is a testline
(----) This is the 2nd line
FileB:
(0000) This is not a testline
(ABCD) This is the second line
经过审核,新文件应该是FileB,FileA第一行的第一个数字:
Result:
(ABCD) This is not a testline
(ABCD) This is the second line
提前致谢,
我找到了一个棘手的解决方案。
首先您需要一种新的文件格式,定义为 table 格式。
- 工具 -> 文件格式
- 按+和selecttable格式
- 定义掩码(在我的例子中是 *.yyy)
- 设置定界类型并定义分隔第一个字符的字符:
在此之后,您可以比较两个文件(在我的例子中,扩展名为 yyy):
要获得正确的对齐方式,您必须将第一列设为标准列(无键列):
现在您只复制了文件的一部分。
备注:
我也尝试了修复的类型。第一列的 with 必须与您需要的第一个数字一样大。然后制作一个大的第二列以获取所有其他数据:
在 Beyond Compare 的文本比较中复制一行的一部分的唯一方法是使用复制和粘贴。复制命令将始终复制整行。
克努特使用 Table 比较的方法是唯一的解决方法。
非常感谢您的详细描述。我按照 Knut 的建议进行了尝试,它起作用了,但我需要做一个小的调整,因为在我使用的文件中有更大的行,而 BeyondCompare 无法始终正确识别这些行。 对我有用的是将“)”设置为分隔符。然后我可以找到前 6 位数字,其余的将作为文本处理以进行比较。
固定类型的比较也不适合我。找到了每个不同的行,但是当我 select 行详细信息中的单元格时,它只用前 6 位数字替换了行。如果我只能替换第一位数字而不是用第一位数字替换整行,这种方法将是理想的。